第二次python练习题目

【问题描述】有一个定义在自然数上的函数 f(x) 定义如下:
若 x <5 , 则 f(x) = x;
若 5<=x<15, 则 f(x) = x+6;
若 x>=15, 则 f(x) = x-6。
试编写该函数,输入x值,返回相应的f(x)值。
【输入形式】输入的一行表示自然数x。
【输出形式】输出的一行表示计算结果f(x),若输入的数据不合法(如:负整数),输出“illegal input”。
【样例输入】4
【样例输出】4

“””
n=eval(input())
def fun(x):
    out=0
    if x<5:
        out=x
    elif x<15 and x>=5:
        out=x+6
    elif x>=15:
        out=x-6
    return out
if not(n>=0):
    print("illegal input")
else:
    print(fun(n))
    

”””

【问题描述】
假设现在有N个人,第一个人3岁,第二个人x岁(未知),第三个人的年龄是前两个人年龄之和,以此类推直到第N个人。尝试编写递归函数,当输入第2个人的年龄(x)和总人数(N)时,逆序输出所有人的年龄组成的列表。注:当其中第M个人的年龄大于120岁时,输出"Larger than 120!"和前M-1个人的年龄的逆序列表。
【输入形式】
在一行内分别输入x和N,用逗号隔开
【输出形式】
逆序输出N个人的年龄组成的列表。当其中第M个人的年龄大于120岁时,输出"Larger than 120!"和前M-1个人的年龄的逆序列表。
【样例输入1】
6,4
【样例输出1】
[15, 9, 6, 3]
【样例输入2】
80,9
【样例输出2】
Age 4 is larger than 120!
[83, 80, 3]
【样例说明】
【评分标准】

“””
x,n=map(eval,input().split(','))
ls=[3,x]
def fun(x,n):
    tem=ls[-1]+ls[-2]
    ls.append(tem)
    if(n==3):
        return 0
    else:
        
        fun(ls[-1],n-1)    
fun(x,n)
flag=False
if ls[-1]>120:
    flag=True
ls.reverse()
index=0
if flag==True:
    for i in range(len(ls)):
        if ls[i]>120:
            index=n-i
            # print("--"+str(index))
    print("Age {} is larger than 120!".format(index)) 
    print(ls[-index+1:])
else:
    print(ls)
    

”””

写一个函数isPrime(n)用于判断一个数字n是不是素数,用户输入一个正整数,在一行内输出不大于该数的所有素数,各数后面用一个空格分隔。
【输入形式】
输入一个正整数
【输出形式】
不大于该数的所有素数,各数后面用一个空格分隔。
【样例输入】
100
【样例输出】
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
【样例说明】
【评分标准】

“””
def isprime(n):
    flag=True
    for i in range(2,n):
        if n%i==0:
            flag=False
            break
    return flag
n=eval(input())
for i in range(2,n):
    if isprime(i):
        print(i,end=' ')
        
”””

猜你喜欢

转载自blog.csdn.net/X131644/article/details/127490497