1.【问题描述】
根据编程模板补充代码,计算斐波那契数列的值,具体功能如下:
获取用户输入整数 N,其中,N 为正整数;
计算斐波那契数列的值。
如果将斐波那契数列表示为 fbi(N),对于整数 N,值如下:
当 N = 1 / N = 2 时,fbi(1) 和 fbi(2)的值是 1;
当 N > 2 时,fbi(N) = fbi(N-1) + fbi(N-2);
【输入形式】
输入使用 input(),不要增加额外的提示信息;
【输出形式】
输出使用 print(),不要增加额外的输出信息;
【样例输入】
输入:“4”
【样例输出】
输出:“3”
【样例说明】
【评分标准】
deffun(i):if i==1or i==2:return1else:return fun(i-1)+fun(i-2)
x=int(input())
y=fun(x)print(y)
2.【问题描述】
输入一个正整数n,把数字n分解成不能再分解因子的乘法,比如:8=222, 10 = 2*5,而不是 8 = 2 * 4 这种可以再分解的。
【输入形式】
输入一个正整数n
【输出形式】
输出包含所有因子的列表
【样例输入】
12
【样例输出】
[2, 2, 3]
【样例说明】
【评分标准】
deffun(n):
ls=[]
i=2while i<=n:if n%i==0:
ls.append(i)
n=n//i
else:
i+=1return ls
n=int(input())
lt=fun(n)print(lt)
3.输入一个正整数n,统计从[0,n]之间的最大的10个素数之和。本题保证测试用例至少有10个满足条件的素数。
例如:输入31 ,应求得3,5,7,11,13,17,19,23,29,31之和。
本题要求使用自定义函数完成,代码框架参考如下:
def isprime(n): #判断素数函数
......
def f(n): #找小于n的素数并求和
......
......
p=int(input())
print(f§)
【输入形式】
【输出形式】
【样例输入】
31
【样例输出】
158
【样例说明】
【评分标准】
一项测试数据超时
from math import*defisprime(i):
flag=1for t inrange(2,int(sqrt(i))+1):if i%t==0:
flag=0return flag
deffun(n):
ls=[]sum=0for i inrange(0,n+1):if isprime(i):
ls.append(i)
ls.sort(reverse=True)for j inrange(10):sum+=ls[j]returnsum
n=int(input())sum=fun(n)print(sum)
改进:
from math import*defisprime(i):
flag=1for t inrange(2,int(sqrt(i))+1):if i%t==0:
flag=0return flag
deffun(n):
ls=[]sum=0for i inrange(n,1,-1)://从n到2逆序循环
if isprime(i):
ls.append(i)iflen(ls)==10:break
ls.sort(reverse=True)for j inrange(10):sum+=ls[j]returnsum
n=int(input())sum=fun(n)print(sum)
版权归原作者 learn 11233466 所有, 如有侵权,请联系我们删除。