- 函数应用,编写程序,求1+2!+3!+...+20!的和。
要求:先定义一个求阶乘的函数op(x),然后主程序调用该函数。
运行结果:
def ho(n):
if n==1:
return 1
else:
return n*ho(n-1)
x = eval(input("请输入参数n:"))
s = 0
for n in range(1,x+1):
a = ho(n)
s = s + a
if n<20:
print("%d!+"%n,end="")
else:
print("%d!="%n,end="")
print("%d"%s)
2、利用穷举算法找出两个正整数中的最大公约数。
求解方法:先定义一个求最大公约数的函数GCD1(x,y)。获取两数中的较小数并由变量smaller表示,使用for循环穷举可能的因子,即变量k的取值范围(必须降序)从smaller至1。若x,y同时能够整除k,则表示k是最大公约数,将其值返回给主程序。由于k的取值过程是从大到小的,所以首次条件成立时就是最大公约数.
a = int(input("输入x:"))
b = int(input("输入y:"))
def GCDl(x,y):
if x>y:
smaller = y
else:
smaller = x
for i in range(1,smaller+1):
if x%i==0 and y%i==0:
global m
m=i
GCDl(a,b)
print("%d和%d的最大公约数是%d"%(a,b,m))
3、使用递归函数计算正整数x和y的最大公约数。
写出递归函数:
gcd(x,0)=x
gcd(x,y)=gcd(y,x%y),y为大于等于0的整数
x = int(input("输入x:"))
y = int(input("输入y:"))
def gcd(a,b):
if a
4、验证哥德巴赫猜想。猜想的大意是,任意大于等于6的偶数都可以写成两个质数之和,如:6=3+3,8=3+5,10=3+7。编程验证100以内的所有偶数。
求解方法:定义函数p(m),功能是若m为质数,则函数返回值为1,否则返回值为0。主程序使用for 循环穷举所有偶数,并两次调用函数p(m)进行是否质数的判断。另外,使用变量count进行显示控制,控制每行显示5个偶数。由于至今人类并没有发现反例,所以验证过程能够正常进行。
def p(m):
i=2
while(i



