橙白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=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")

稍微拓展:

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如: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

虽然文章里写了,我还是特别写一下,这道题是多组输入,先打表再接收并输出才是最快的,不必每次都算一遍。

你可能感兴趣的:(讲课)