
1.分别用递归函数和非递归函数的形式实现:输入两个1至10000之间的正整数,输出这两个数之间的所有Fibonacci数列。
提示:Fibonacci数列为1,1,2,3,5,8,13,21,...1,1,2,3,5,8,13,21,...
在数学上,数列以如下递归的方法定义:F(1)=1,F(2)=1,F(n)=F(n−1)+F(n−2)(n>=2,n∈N*)
#递归函数
def Fibonacci(n):
if n == 1 or n == 2:
return 1
else:
return Fibonacci(n-1) + Fibonacci(n-2)
while True:
try:
a = int(input("输入范围下限:"))
b = int(input("输入范围上限:"))
if 1 <= a < b <= 10000:
list_Fibonacci = []
for i in range(1,21):
c = Fibonacci(i)
if c in range(a,b+1):
list_Fibonacci.append(c)
else:
continue
print(list_Fibonacci)
else:
print("请输入1-10000之间的整数,且a小b大")
except ValueError:
print("请输入整数")
def Fibonacci(n):
if n==1 or n==2:
return 1
else:
i,F1,F2 =2,1,1
while(i
2.用递归函数将输入的字符串以相反顺序输出。
def abc(a):
if len(a) == 0:
return
else:
print(a[len(a) -1],end = '')
abc(a[:len(a) -1])
return ""
a = input("请输入字符串")
print(abc(a))
3.实现isPrime()函数,参数为整数。如果整数是素数,返回True,否则返回False。编写程序并保存为isPrimeFun.py
(1) 调用isPrime()函数并在屏幕输出3-100以内的素数,编写程序并保存为showPrime.py。提交程序文件isPrimeFun.py和showPrime.py。
(2) 请思考:如果用户输入的不是整数,是浮点数或者字符串等,程序就会出错。那么,如何进行异常处理,保证程序不出错呢?
while True:
try:
def isPrime(n):
list_i = []
for i in range(1,n):
if n % i == 0:
list_i.append(i)
else:
continue
if len(list_i) == 1:
return True
else:
return False
isPrime(4)
list_j = []
a = int(input("请输入范围下限:"))
b = int(input("请输入范围上限:"))
for j in range(a,b + 1):
if isPrime(j):
list_j.append(j)
else:
continue
print(list_j)
except ValueError:
print("请输入一个整数")欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)