どーも、みつおです。
問題
正の整数を順に連結して得られる以下の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