実現方法
実現したいことは一つでも、
その方法はいくらでもある。
プログラムも同じです。
先日の体験会、
プログラミング経験のある中学生は、
僕の想像しなかった書き方で課題の1を解きました。
ちゃんとじゃんけんの動きをしていたので、
それでオッケーです。
答えとして用意されているのは、
プログラムの一例です。
その通り書かなくても動けばOK。
見比べてみて何が違う理由を考えてみると、
すごく上達します
考え方
もう一つの例。
先日、教室に通う小学生から
「『二乗したときにその数で終わる数』を見つけるプログラムを
作っているので見てほしい」
とメッセージがありました。
自己同形数というようです。
英語の説明の方がわかりやすいかも。
Automorphic numbers: m^2 ends with m.
例えば、
5の二乗は25。
25は5で終わっているから、5は自己同形数。
同様に、6、25,76も自己同形数になります。
どこからこういう課題を見つけてこられたのか。
びっくりします。
これをプログラムで見つけたい。
こういう発想がいいです。
プログラム
僕の考えたのは、こんなの。
for a in range(10000):
aa = a * aa_len = len(str(a))
b = 10 ** a_lenif a == aa % b:
print(str(a) + ‘ is Automorphic number!’)
算数的に考えました。
課題をくれた小学生も
「解けた!」ってプログラムを送ってくれました。
数字を文字列に変換して、末尾の文字を比較したみたい。
僕とはぜんぜん違う自己同形数の見つけ方。
目的は同じだけど、全く違うアプローチ。
こういうのが面白いところです。