题目六十
编写计算程序:
f(n)=f(n−1)+100 when n>0
其中:f(0)=0
通过控制台输入给定的n个输入(n>0)。
示例:如果给出以下n作为程序的输入:
5
输出为:
500
提示:
可以在python中定义递归函数。
代码实现
方法一:python内定义函数
def f(n): #定义函数名及变量
if n==0:
return 0 #定义函数初始值
return f(n-1)+100 #定义函数运算法则
n = int(input("请输入需要计算的值:"))
print(f(n))
方法二:while循环语句
n = int(input("请输入需要计算的值:"))
sum = 0
while n>0: #确定循环条件
sum += 100
n -=1 #确定循环次数
print(sum)
运行结果
请输入需要计算的值:9
900
题目六十一
Fibonacci序列是根据以下公式计算的:
f(n)=0f(n)=0 if n=0
f(n)=1f(n)=1 if n=1
f(n)=f(n−1)+f(n−2)f(n)=f(n−1)+f(n−2) if n>1
请通过控制台编写一个计算f(N)值的程序。
示例:如果给出以下n作为程序的输入:
7
输出为:
13
代码实现
python内定义函数
def f(n):
if n<2 :
return n
return f(n-1)+f(n-2)
n = int(input("请输入需要计算的值:"))
print(f(n))
运行结果
请输入需要计算的整数:7
13
题目六十二
Fibonacci序列是根据以下公式计算的:
f(n)=0 if n=0
f(n)=1 if n=1
f(n)=f(n−1)+f(n−2) if n>1
请通过控制台编写一个计算f(N)值的程序。示例:如果给出以下n作为程序的输入:
7
输出为:
0,1,1,2,3,5,8,13
代码实现
方法一:
def f(n):
if n<2 :
return n
return f(n-1)+f(n-2)
n = int(input("请输入需要计算的整数:"))
i = 0
result = []
for i in range(0,n+1):
result.append(str(f(i)))
ans = ",".join(result)
print(ans)
方法二
def f(n):
if n < 2:
fibo[n] = n
return fibo[n]
fibo[n] = f(n - 1) + f(n - 2)
return fibo[n]
n = int(input())
fibo = [0] * (n + 1) # 初始化一个列表的长度为 (n+1)
f(n) # 使用一次,会将值记录在列表的[0-n]
fibo = [str(i) for i in fibo] # 将整数类型转换为字符串类型
ans = ",".join(fibo) # 打印过程中添加","
print(ans)
运行结果
请输入需要计算的整数:7
0,1,1,2,3,5,8,13
题目六十三
请用生成器编写一个程序,以逗号分隔的形式打印0到n之间的偶数,同时由控制台输入n。
例,输入如下数字:
10
输出为
0,2,4,6,8,10
代码实现
方法一:自定义函数
def Findeven(n):
i = 0
while i<=n:
if i % 2 ==0:
yield i
i +=1
n = int(input("请输入数值:"))
lst = []
for i in Findeven(n):
lst.append(str(i))
print(",".join(lst))
方法二:for循环语句
n = int(input("请输入数值:"))
for i in range(0,n+1,2) #从0开始,步长为2
if i < n-1:
print(i,end=",")
else:
print(i)
运行结果
请输入数值:10
0,2,4,6,8,10
题目六十四
请用生成器编写一个程序,在0和n之间以逗号分隔的形式打印可以被5和7整除的数字,而n是由控制台输入的。
示例:如果给出以下n作为程序的输入:
100
输出为:
0,35,70
代码实现
方法一:自定义函数
def f(n):
for i in range(0,n+1):
if (i%35 == 0):
yield i
n = int(input("请输入数值:"))
lst = [str(i) for i in f(n)]
print(",".join(lst))
方法二:for循环语句
n = int(input("请输入数值:"))
for i in range(0,n+1,35): #从0开始,步长为35
if i < n-34:
print(i,end=",")
else:
print(i)
运行结果
请输入数值:100
0,35,70