728x90
반응형
키보드로부터 0보다 큰 임의의 정수를 입력받고 이 정수를 이진수로 출력하고 이진수에 들어있는 1의 개수를 출력하라.
이진수 메소를 사용하지 않고 알고리즘을 이용해 푼 것.
import java.util.*; public class binary { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); int sum[] = new int[30]; int digit = 1, count = 0, bin_count = 0; System.out.print("0보다 큰 정수를 입력하세요 : "); int num = scanner.nextInt(); if(num < 0){ System.out.println("잘못입력하셨습니다."); return; } for (int i = 0; num > 0; i++) { sum[i] += num % 2; num /= 2; count++; if (sum[i] == 1) bin_count++; } System.out.print("이진수 : "); for (int i = count - 1; i >= 0; i--) { System.out.print(sum[i] + " "); } System.out.println(); System.out.println("1개의 개수 : " + bin_count); } }
toBinaryString 메소드 사용
import java.util.*; public class binary2 { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); int count = 0; System.out.print("0보다 큰 정수를 입력하세요 : "); int num = scanner.nextInt(); if (num < 0) { System.out.println("잘못입력하셨습니다."); return; } String binary = Integer.toBinaryString(num); System.out.println("이진수 : " + binary); for (int i = 0; i < binary.length(); i++) { if (binary.charAt(i) == '1') count++; } System.out.println("1의 개수 : " + count); } }
반응형
'Java' 카테고리의 다른 글
[Java] 명품 자바프로그래밍 제 3장 실습문제 5번 (0) | 2017.04.24 |
---|---|
[Java] 명품 자바프로그래밍 제 3장 실습문제 4번 (0) | 2017.04.24 |
[Java] 명품 자바프로그래밍 제 3장 실습문제 2번 (0) | 2017.04.23 |
[Java] 명품 자바프로그래밍 제 3장 실습문제 1번 (0) | 2017.04.23 |
[Java] 명품 자바프로그래밍 제 3장 Open Challenge (0) | 2017.04.23 |
댓글