새소식

반응형
Language/알고리즘

백준 BaekJoon 8741번: 이진수 합[Java] 자바

  • -
반응형

2020-10-06


문제

세계적인 이진수 매니아 현수는 오늘도 이진수를 연구하고 있다.

오늘은 이진수로 나타냈을 때,

k자리 이하인 모든 자연수의 합을 구해보려고 한다.

k가 주어졌을 때, 이진수로 나타냈을 때,

k자리 이하인 모든 자연수의 합을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 k가 주어진다. (1 ≤ k ≤ 106)

출력

첫째 줄에 이진수로 나타냈을 때,

k자리 이하인 모든 자연수의 합을 이진수로 출력한다.

 


소스코드

		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();

		int number = 1;
		int sum = 0;
		while(true) {
			String strNumber = Integer.toBinaryString(number);
			//1부터 자릿수 체크를 위해 
				//n 보다 자릿수가 커지면 break;2진수로 변환
			if(strNumber.length() > n) {
				break;
			}else {
				sum += number;
				number++;
				//n 보다 작거나 같으면 수를 더해줌
			}
		}
		
		String strSum = Integer.toBinaryString(sum);
		//더한 값 다시 2진수 변환
		System.out.println(strSum);

 

출처 링크 :www.acmicpc.net/problem/8741

 

8741번: 이진수 합

첫째 줄에 이진수로 나타냈을 때, k자리 이하인 모든 자연수의 합을 이진수로 출력한다.

www.acmicpc.net

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.