はいどーもー
乙pyです。
暇なので受験シーズンだし
有名中学の算数の問題をプログラムで解けないかと
思ったりしたわけですね。
インターネットの
Googleで調べたんですが
そこで問題が難しそうな学校を見つけてしまったんですね。
皆さん
難しい中学校って知ってます?
自分は近所の中学校に行ったので
知らないんですけど
問題を解いてみたんですねー
動画解説はこちら
まずはじめの問題は
これの解き方は非常に簡単です。
4つの整数のうち
基準になるのは a で
求める答えも a
a と他の整数b,c,dとの関係はそれぞれ
b = a + 1
c = b + 1
d = c + 1
と1つづつ増えています。
なのでaを基準にして全て変数に置き換えます。
aは基準の数値なので
試行する数値にするため for文の対象にします。
求める答えの条件は
a * b + b * c + c * d + d * a が2400ということなので
この条件に合致した場合に表示させるだけです。
プログラムはこのようになりました。
for a in range(30): b=a+1 c=b+1 d=c+1 if a*b+b*c+c*d+d*a==2400: print(a) break
非常に簡単ですね
次の問題は
17で割ると3余り、13で割ると7余る
これが出力する際の条件1つ目ですね
もう一つは3桁の整数で最大
なのでまずは3桁の整数のなかで上記の条件に当てはまるものを
全て探します。
探し出す数値を x とすると
for x in range(100,1000):
で3桁の整数を試行できます。
あとは最大値を求めるやり方ですが
条件に当てはまるものが複数でるため
それをリストに格納しておいて
その格納された数値の中で一番大きいものを求めます。
プログラムは
result = [] for x in range(100,1000): if x%17==3 and x%13==7: result.append(x) print(max(result))
このようになりますね。
プログラミング初学者の方々には
こういった問題を解くのは非常に勉強になると
思いました。
引き続き
プログラムで入試問題を
解いていきたいと思います。
コメントする