トップページに戻る
次のC#のサンプルへ
前のC#のサンプルへ
Problem16 2の1000乗の各数字の合計
問題
2の15乗=32768であり、これの各数字の合計は 3+2+7+6+8=26となる。
同様にして、2の1000乗の各数字の合計を求めよ。
ソース
using System;
using System.Linq;
class Program
{
//const int Jyousuu = 15;
const int Jyousuu = 1000;
static void Main()
{
var wkArr = new int[Jyousuu + 2];
wkArr[1] = 2;
for (int I = 1; I <= Jyousuu - 1; I++) {
for (int J = 1; J <= wkArr.GetUpperBound(0); J++) {
wkArr[J] *= 2;
}
for (int J = 1; J <= wkArr.GetUpperBound(0); J++) {
if (wkArr[J] >= 10) {
wkArr[J + 1] += wkArr[J] / 10;
wkArr[J] %= 10;
}
}
}
Console.WriteLine(wkArr.Sum());
}
}
実行結果
1366
解説
繰り上がり値を順番に求めていってます。