본문으로 바로가기
728x90
반응형

[16번 문제]


215 = 32768 의 각 자리수를 더하면 3 + 2 + 7 + 6 + 8 = 26 입니다.

21000의 각 자리수를 모두 더하면 얼마입니까?

[ 번역링크 / 원본링크 ]


[코드]


타 언어처럼 biginteger를 c++에선 지원을 하지않아서... 계산기형식으로만들었다

언제나 최적화는 신경1도 안쓰고 푸는데에만 신경쓴다...


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
using namespace::std;
 
#define 지수 2
#define 승수 1000
int ans = 0;
int list[1000= { 0 };
int main()
{
    list[0= 1;
    int temp = 1,j=0;
    int carry = 0, max = 0;
    for (int i = 0; i < 승수; i++)
    {
        j = 0;
        if (max == 0)
        {
            list[j] *= 지수;
            if (list[j] >= 10)
            {
                max++;
                temp = list[j];
                list[j] = temp % 10;
                list[j + 1+= temp / 10;
            }
        }
        else
        {
            for (j = max; j >= 0; j--)
            {
                list[j] *= 지수;
                if (list[j] >= 10)
                {
                    if(j==max)
                        max++;
                    temp = list[j];
                    list[j] = temp % 10;
                    list[j + 1+= temp / 10;
                }
            }
        }
    }
    for (int j = max; j >= 0; j--)
        ans += list[j];
    cout << endl  << ans << endl;
    system("pause");
    return 0;
}
cs

728x90
반응형