Python基础100题打卡Day16

题目六十

编写计算程序:
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值