*[[Problem 156:http://projecteuler.net/problem=156]] 「桁の数え上げ」 [#nd18f892]

以下のように, 10進法で自然数を0から書いていく. ~
0 1 2 3 4 5 6 7 8 9 10 11 12....

ある桁の数が d = 1 について考える. 数nを書いた後, 1が出現する回数を更新する. この数を f(n,1) とする. f(n,1) の最初の値は以下のようになる.
|n|f(n,1)|
|0|0|
|1|1|
|2|1|
|3|1|
|4|1|
|5|1|
|6|1|
|7|1|
|8|1|
|9|1|
|10|2|
|11|4|
|12|5|

f(n,1) は決して3にならないことに注意. ~
つまり, f(n,1) = n の最初の2つの解は, n = 0 と n = 1 となる. 次の解は n = 199981 である.

同様にして, f(n,d) はある桁の数dがnまでに何回現れたか, と定義する. ~
実は, d ≠ 0 の全てのdについて, 0 が f(n,d)=n の最初の解となる.

s(d) を, f(n,d) = n の解の総和として定義する.
s(1) = 22786974071 となる.

1 ≤ d ≤ 9 について, ∑ s(d) を求めよ.

注意: もし, f(n,d) = n となるnが異なったdについて存在した場合, このnは重複して数えるものとする.

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS