[B]project Euler #20-1回目

ご注意:下記1つめのコードは間違いです。

とりあえず、doubleにぶっ込んでみる。
計測誤差が発生したのでアウトでした。


/*----------------------------------------------------->
project Euler
Problem 20

n × (n - 1) × ... × 3 × 2 × 1 を n! と表す。

100! の各桁の数字の合計を求めよ。
------------------------------------------------------->*/

#include<iostream>
#include<cmath>

#define NUM 10

using namespace std;

int main(){

double factorial = 1 ; //階乗値
int number; //桁数
int sum = 0 ; //合計値

for( int i = NUM; i > 1 ; i--){

factorial *= i;

while( factorial >= 10 ) factorial /= 10 ;

}//next i

while( factorial ){
number = (int)floor( factorial );
sum += number;
factorial = ( factorial - number ) *10;

cout << "\nsum:" << sum << "\tfactorial\t" << factorial;
}

cout << "Answer is " << sum;

getchar();
return 0;
}