文章目录
- 求最大公约数和最小公倍数
- 斐波那契数列
- 求和运算
- 求前n阶乘的和
- 求年龄
求最大公约数和最小公倍数
两个数的最大公约数是两个数的公共因子中最大的那个数;两个数的最小公倍数
则是能够同时被两个数整除的最小的那个数。
输入:(120 和 60 是通过键盘输⼊的)
x = 120
y = 60
输出:
60 和 120 的最大公约数是:60
60 和 120 的最小公倍数是:120
答案:
x = int(input('x = '))
y = int(input('y = '))# 如果 x 大于 y 就交换 x 和 y 的值
if x > y:# 通过下面的操作将 y 的值赋给 x, 将 x 的值赋给 ytemp = yy = xx = temp# 从两个数中较的数开始做递减的循环
for factor in range(x, 0, -1):if x % factor == 0 and y % factor == 0:print('{}和{}的最大公约数是:{}' .format(x, y, factor))print('{}和{}的最小公倍数是:{}' .format(x, y, x * y // factor))break
斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……。
在数学上,费波那契数列是以递归的方法来定义:
F 1 F_1 F1 = 1 (n=1)
F n F_n Fn = F[n-1]+ F[n-2] (n=>2)
输入:(数字 10 是通过键盘输⼊的)
请输入需要打印的斐波那契数列的数据个数(从 1 开始):10
输出:(每一个数据项之间用空格)
1 1 2 3 5 8 13 21 34 55
答案:
def fib(n):a, b = 1, 1#通过循环来打印数据for i in range(n):print(a,end = " ")temp = aa = bb = temp+b
num = int(input("请输入需要打印的斐波那数列的数据个数(从 1 开始):"))
fib(num)
求和运算
求 s=a+aa+aaa+aaaa+aa…a 的值,其中 a 是一个数字。例如:
2+22+222+2222+22222(此时共 有 5 个数相加),几个数相加由键盘控制。
输入:
a = 4
n = 5
输出:
4
44
444
4444
44444
前 5 个数的和为:49380
答案:
Tn = 0
Sn = []
a = int(input('a = '))
n = int(input('n = '))for count in range(n):Tn = Tn + aa = a * 10Sn.append(Tn)print(Tn)
print("前{}个数的和为:{}".format(n, sum(Sn)))
求前n阶乘的和
比如求 1+2!+3!+…+20!的和。
输入:(不要输入太大的 n 防止数据太大,电脑卡死)
n = 20
输出:
前 20 阶乘的和是:2561327494111820313
答案:
n = int(input("n = "))
s = 0
t = 1
for i in range(1,n+1):t *= is += t
print ("前{}阶乘的和是:{}" .format(n,s))
求年龄
有 5 个人坐在一起,问第五个⼈人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁数,他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2个人,说比第一个人大两岁。最后问第一个人,他说是 10 岁。请问第五个人多大?
输入:无
输出:第五个人的年龄
答案:
def age(n):if n == 1:c = 10else:c = age(n - 1) + 2return c
print ("第五个人的年龄是:",age(5))