トップページに戻る    次のC#のサンプルへ    前のC#のサンプルへ

Problem20 100の階乗の各桁の合計

問題

n × (n - 1) × ... × 3 × 2 × 1 を n! と表す。
100! の各桁の数字の合計を求めよ。


ソース

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        var IntArr = new int[999];
        IntArr[0] = 1;
        for (int I = 1; I <= 100; I++) {
            for (int J = 0; J <= IntArr.GetUpperBound(0); J++) {
                IntArr[J] *= I;
            }
            for (int J = 0; J <= IntArr.GetUpperBound(0) - 1; J++) {
                if (IntArr[J] >= 10) {
                    IntArr[J + 1] += IntArr[J] / 10;
                    IntArr[J] %= 10;
                }
            }
        }
        Console.WriteLine(IntArr.Sum());
    }
}


実行結果

648


解説

Intの配列で大きい桁の変数を代用してます。