オレンジ白oj 18訓練作業1-題解、コード
2049 ワード
学習資料とojはどのようにソフトウェアの公式qq群739979255を使用します
ojサイト:http://oj.acm-icpc.top/
a題:原題は2つの数を入力し、1行をスペースで区切ることで、python操作は萌新にとってやや難しいので、1行1つの数に変更し、a+bを算出する.
考え方:数字を順番に受信し、整形(inputは文字列)に変換して加算することに注意します.
b題:逆序数を出力する:
構想:文字列スライスを利用して直接ステップ-1でよい
もちろん、リストに逆順を入れたり、数学の逆順を利用したりしてもいいです.
c題:水仙の花数:
知識ポイント1:複数のデータのグループをゼロで終了 考え方:while 1は絶えずデータを受け入れて、毎回予め判断して、0は循環を飛び出します
知識点2:水仙の判断 考え方:数学や文字列を利用して一人一人を取り出し、三次方を取って、判断して出力すればいい.
文字列の標準書き方:
または、次の手順で取り出します.
数学の取り出し:
少し拡張:
春は花の季節で、水仙の花はその中で最も魅力的な代表で、数学の上で水仙の花の数があって、彼はこのように定義しました:“水仙の花の数”は1つの3桁の数を指して、その各位の数字の立方とそれ自身に等しくて、例えば:153=1^3+5^3+3^3.mとnの範囲内のすべての水仙の数を出力することが要求された.
acコード:
d題:フィボナッチ:参考になるhttps://blog.csdn.net/hebtu666/article/details/79912328
文章の中で書いたが、私は特に書いて、この問題は複数の入力で、先に表を打ってから受信して出力するのが一番速いので、毎回計算する必要はありません.
ojサイト:http://oj.acm-icpc.top/
a題:原題は2つの数を入力し、1行をスペースで区切ることで、python操作は萌新にとってやや難しいので、1行1つの数に変更し、a+bを算出する.
考え方:数字を順番に受信し、整形(inputは文字列)に変換して加算することに注意します.
a=int(input())
b=int(input())
print(a+b)
b題:逆序数を出力する:
構想:文字列スライスを利用して直接ステップ-1でよい
print(input()[::-1])
もちろん、リストに逆順を入れたり、数学の逆順を利用したりしてもいいです.
c題:水仙の花数:
知識ポイント1:複数のデータのグループをゼロで終了 考え方:while 1は絶えずデータを受け入れて、毎回予め判断して、0は循環を飛び出します
知識点2:水仙の判断 考え方:数学や文字列を利用して一人一人を取り出し、三次方を取って、判断して出力すればいい.
文字列の標準書き方:
while 1:
n=input()
sum=0
if int(n)==0:
break
else:
for i in n:
sum=sum+int(i)**3
if sum==int(n):
print("Yes")
else:
print("No")
または、次の手順で取り出します.
while 1:
a=int(input())
if a==0:
break
else:
b=str(a)
c=int(b[0])
d=int(b[1])
e=int(b[2])
f=(c**3)+(d**3)+(e**3)
if f==a:
print("Yes")
if f!=a:
print("No")
数学の取り出し:
while 1:
n=int(input())
if n==0:
break
else:
a=n%10
b=n//10%10
c=n//100
if n==a**3+b**3+c**3:
print("Yes")
if n!=a**3+b**3+c**3:
print("No")
少し拡張:
春は花の季節で、水仙の花はその中で最も魅力的な代表で、数学の上で水仙の花の数があって、彼はこのように定義しました:“水仙の花の数”は1つの3桁の数を指して、その各位の数字の立方とそれ自身に等しくて、例えば:153=1^3+5^3+3^3.mとnの範囲内のすべての水仙の数を出力することが要求された.
acコード:
m,n=[int(x) for x in input().split()]
num = []
for i in range(m,n):
if i==sum(int(x)**3 for x in str(i)):
num.append(i)
if len(num) is not 0:
print(" ".join(map(str, num)))
else:
print("no")
d題:フィボナッチ:参考になるhttps://blog.csdn.net/hebtu666/article/details/79912328
文章の中で書いたが、私は特に書いて、この問題は複数の入力で、先に表を打ってから受信して出力するのが一番速いので、毎回計算する必要はありません.