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

[20번 문제]


n! 이라는 표기법은 n × (n − 1) × ... × 3 × 2 × 1을 뜻합니다.

예를 들자면 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800 이 되는데,
여기서 10!의 각 자리수를 더해 보면 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27 입니다.

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

[ 번역링크 / 원본링크 ]


[코드]


오류를 아직 잡지못했다... 당장은 뭐가오류인지 못찾아서 보류


자릿수가 들어갈 배열이 모자라서 결과가 제대로 나오지 않았다..


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
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
using namespace::std;
 
#define 계산수 100
int list[계산수*2= { 0 };
int ans = 0;
int main()
{
    int temp = 0, max = 0;
    list[0= 1;
    for (int i = 1; i <= 계산수; i++)
    {
        for (temp = 0; temp <= max; temp++)
            list[temp] *= i;
        for (temp = 0; temp <= max; temp++)
        {
            if (list[temp] >= 10)
            {
                if (temp >= max)
                    max++;
                list[temp + 1+= list[temp] / 10;
                list[temp] = list[temp] % 10;
            }
        }
    }
    for (int i = max; i >= 0; i--)
        ans += list[i];
    cout << endl << ans << endl;
    system("pause");
    return 0;
}
 
 
 
cs

728x90
반응형