橙白oj18训练作业1-题解、代码
生活随笔
收集整理的這篇文章主要介紹了
橙白oj18训练作业1-题解、代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習資料和oj如何使用加軟件官方qq群739979255
oj網址:http://oj.acm-icpc.top/
a題:原題為輸入兩個數,一行,用空格隔開,因為python操作對萌新來說略難,改為一行一個數,算出a+b。
思路:依次接收數字,注意轉換為整形(input接受為字符串),然后加起來。
a=int(input()) b=int(input()) print(a+b)b題:輸出逆序數:
思路:利用字符串切片直接步長-1即可
print(input()[::-1])當然,放到列表里逆序,或利用數學逆序,等等,都可以。
c題:水仙花數:
知識點一:多組數據,以零結束? ? ? ?思路:while 1不斷接受數據,每次預先判斷,是0就跳出循環
知識點二:水仙花的判斷? ? ? ? ? ? ? ? 思路:利用數學或字符串取出每一位,并取三次方,判斷并輸出即可。
字符串標準寫法:
while 1:n=input()sum=0if int(n)==0:breakelse:for i in n:sum=sum+int(i)**3if sum==int(n):print("Yes")else:print("No")或依次取出:
while 1:a=int(input())if a==0:breakelse: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:breakelse:a=n%10b=n//10%10c=n//100if n==a**3+b**3+c**3:print("Yes")if n!=a**3+b**3+c**3:print("No")稍微拓展:
春天是鮮花的季節,水仙花就是其中最迷人的代表,數學上有個水仙花數,他是這樣定義的: “水仙花數”是指一個三位數,它的各位數字的立方和等于其本身,比如: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
雖然文章里寫了,我還是特別寫一下,這道題是多組輸入,先打表再接收并輸出才是最快的,不必每次都算一遍。
總結
以上是生活随笔為你收集整理的橙白oj18训练作业1-题解、代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 广义表的基本概念【数据结构】
- 下一篇: 李牛(Linux)脚本