どーも、みつおです。
問題
正の整数を順に連結して得られる以下の10進の無理数を考える:
0.123456789101112131415161718192021…小数第12位は1である.
dnで小数第n位の数を表す. d1 × d10 × d100 × d1000 × d10000 × d100000 × d1000000 を求めよ.
出典:Problem40
解答
using System;
namespace Problem40
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Solve());
Console.ReadLine();
}
private static int Solve()
{
int ret = 0;
int i = 1;
string str = "";
//正の整数の連結
while (true)
{
str += i.ToString();
i++;
if (str.Length > 1000000) break;
}
char[] chArray = str.ToCharArray();
//小数第n位の数を取得
int i1, i10, i100, i1000, i10000, i100000, i1000000;
i1 = int.Parse(chArray[0].ToString());
i10 = int.Parse(chArray[9].ToString());
i100 = int.Parse(chArray[99].ToString());
i1000 = int.Parse(chArray[999].ToString());
i10000 = int.Parse(chArray[9999].ToString());
i100000 = int.Parse(chArray[99999].ToString());
i1000000 = int.Parse(chArray[999999].ToString());
ret = i1 * i10 * i100 * i1000 * i10000 * i100000 * i1000000;
return ret;
}
}
}
出力
210


コメント