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
반응형
'Solution > Project Euler' 카테고리의 다른 글
[18/C++] 삼각형을 따라 내려가면서 합이 최대가 되는 경로 찾기 (0) | 2018.05.26 |
---|---|
[17/C++] 1부터 1000까지 영어로 썼을 때 사용된 글자의 개수는? (0) | 2018.05.25 |
[15/C++] 20×20 격자의 좌상단에서 우하단으로 가는 경로의 수 (0) | 2018.05.25 |
[14/C++] 백만 이하로 시작하는 우박수 중 가장 긴 과정을 거치는 것은? (0) | 2018.05.25 |
[13/C++] 50자리 숫자 100개를 더한 값의 첫 10자리 구하기 (0) | 2018.05.25 |