自然数 n の k桁目を取り出す

3141592653589793 (円周率の小数点以下15桁目までの数に $10^{15}$ 掛けてみた)

の3桁目は

7だよね (見ればわかる)

70330367711422815821835254877183549770181269836358732742604905087154537118196933579742249494562611733487750449241765991088186363265450223647106012053374121273867339111198139373125598767690091902245245323403501 (1000番目のフィボナッチ数)

の 100 桁目は

9だよね (信じる?)

自然数 n の k 桁目を取り出す手続きを考えよう

問題を解く場合 最も簡単な場合を考えるのがコツ

最も楽なのは k が 1 の時でしょう

3141592653589793 の1桁目は

3

70330367711422815821835254877183549770181269836358732742604905087154537118196933579742249494562611733487750449241765991088186363265450223647106012053374121273867339111198139373125598767690091902245245323403501 の1桁目は

1

1桁目は どうやって求める?

10で割った余りを求めればよいでしょう?

じゃあ 12345 の 2桁目は

2桁目?

12345 じゃなくって 1234 の 1桁目?だったらできる!

12345 を 1234 にして  1桁目 を答えればよいね

12345 を 1234 にするには

小学生低学年の割り算で 10 で割ればよいね

10で割った 商 だ

12345 の 2桁目は

12345を 10で割った 商 の1桁目

12345を 10で割った 商 を 10で割ったあまり

じゃあ 12345 の 3桁目は

12345を 100で割った 商 の1桁目

12345を 100で割った 商 を 10で割ったあまり

じゃあ 12345 の 4桁目は

12345を 1000で割った 商 の1桁目

12345を 1000で割った 商 を 10で割ったあまり

1桁目 そのまま 10で割ったあまり

2桁目 10で割った 商を 10で割ったあまり

3桁目 100で割った 商を 10で割ったあまり

4桁目 1000で割った 商を 10で割ったあまり

2 なら10

3 なら 100

4 なら 1000

5 なら 10000

法則が見つけられないか?

k ならば 10を (k-1)回掛けた値だよね

10を (k-1)回掛ける は 10の(k-1)乗 , $ 10^{(k-1)}$だ

どんな数も 0乗は 1だから k桁目の対応表にぴったり あてはまる

1 なら 1 , $10^{(0)}$ 

2 なら 10 , $10^{(1)}$

3 なら 100 , $10^{(2)}$

4 なら 1000 , $10^{(3)}$

5 なら 10000 , $10^{(4)}$

ということで n の k 桁目は

n を $10^{(k-1)}$ で 割った商 を 10で割った 余り

あとは、これを gauche で表現すればよいだけ

a を b で割った商を返す手続き は

a を b で割った余を返す手続き は

a の b 乗を返す手続き は

覚えていなければ、調べよう。調べたら覚えよう