본문 바로가기

Problem/ETC

[백준알고리즘] 8741번 이진수 합

https://www.acmicpc.net/problem/8741


시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초128 MB2771123994146.956%

문제

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

오늘은 이진수로 나타냈을 때, k자리 이하인 모든 자연수의 합을 구해보려고 한다.

k가 주어졌을 때, 이진수로 나타냈을 때, k자리 이하인 모든 자연수의 합을 구하는 프로그램을 작성하시오.

입력

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

출력

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

예제 입력 1 

3

예제 출력 1 

11100

힌트

1 + 2 + 3 + 4 + 5 + 6 + 7 = 28 = 111002




N = 2 일 때, 1+2+3 = 6 = 110

N = 3 일 때, 1+2+3+4+5+6+7 = 28 = 11100

N = 4 일 때, 1+2+3+4+5+6+7+8+9+10+11+12+13+14+15 = 120 = 1111000


규칙이 보이는가 ㅠㅠ...... 이걸 미리 안해보고 엄청 많은 과정을 거치려고 했더니 문제가 쉽게 안풀렸었다..


규칙찾기 문제.. 화난다!


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
using namespace std;
 
int main(void)
{
    int N;
    cin >> N;
 
    for (int i = 0; i < N; i++)
    {
        cout << 1;
    }
    for (int i = 0; i < N-1; i++)
    {
        cout << 0;
    }
    return 0;
}
cs