プログラミング最近Twitterを見ていたら、「超難問コロシアム」とかいう数学の問題が広告で出てきてやがったので、ちょっと解いてみました。普通に解くだけじゃ面白くないので、せっかくだから僕が頭を使って自力で解くのと、プログラム書いて解くのとでどちらが早いかを比べてみました。www.zkai.co.jp解いた問題はこちら自然数のうち、3乗すると下3桁が999になるものを1つ挙げよ。問題の時点で結果が見えている気がしますが、とりあえずやってみます。自力編まず下3桁の話なので、1000の位より上はどうでも良い。n^2の下1桁)の組み合わせは(1,9),(3,3),(9,1)の3通りしかないが、cが1ならn^2の下1桁も必ず1になるので(1,9)はあり得ないし、cが3ならn^2の下1桁は9になるはずなのでこれもダメ。いうことでc=9で、ついでにいうとn^2の下1桁は1ということがわかる。下1桁が、n^2の10の位ということになる。これを仮にb2と置くと、(b,b2)の組み合わせは(1,6),(2,4),(3,2),(4,0),(5,8),(6,6),(7,4),(8,2),(9,0),(0,8)の10通りのいずれかになる。いうことになり、上記の10通りの中からこの条件を満たすのは(b,b2)=(9,0)の時のみであることがわかる。この辺でなんとなく答えは読めてきたけど、ちゃんと解く。*(100a+99)1000の位より上はどうでも良いので、それらを省きながら計算すると、9801(300a+99)。これの100の位はと言うと、9801*99の百の位は2なので(これはがんばって計算した)、つまり3a+2の下1桁が9ということになる。こんなaは9しかない。したがって答えは999。回答にかかった時間は約15分。{break;}}System.out.println(n);}}実行結果は999。コーディングならびにプログラムが回答をコンソールに吐くまでの時間は2分。予想してた通りですが、プログラム書く方が圧倒的に早かったです。01:06【雑記】3乗して下3桁が999になる自然数を求める問題Tweet広告を非表示にする関連記事2014-06-24【W杯】グループ予選2周目の感想2周目の感想です。2013年振り返り気付けば1月も半分以上終わってるらしいですね。2014年も24分...2013-12-02【UX】「次の記事」は新しい記事のことだけど、「次のページ」は古い記事のことふえぇ・・・UXわからないよぉ・・・。二次元と方向記号につい...2013-11-13【CSS】はてなブログのカテゴリ欄をタグクラウド風にカテゴリ表示周りのCSSを少し弄りました。港区界隈でSEやってた暇人。今はITコンサルとかいう胡散臭い職種になっています。好きな和音はsus4です。(1)月別アーカイブ参加グループプログラミンググループテストしたい人のグループポケモンリンクはてなブログQiitaGitHubはてなブログをはじめよう!sakuramochi702さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。