目录
题目一
题目
定义n!的函数fact(),丙在此基础上编写求和函数sumfact(),实现1!+2!+...n!的计算。
代码
def fact(n):
s=1;
if n<=1:
if n==0 or n==1:
return 1
else:
print("n不能小于0!")
else:
for i in range(1,n+1):
s*=i
return s
def sumfact(n):
s=0
for i in range(1,n+1):
s+=fact(i)
return s
n=int(input("请输入n:"))
sum=sumfact(n)
print("1!+2!+...+n!={}".format(sum))
题目二
题目
定义素数判别函数list_prime(),该函数可以同步判断任意个数是否是素数,并将所有素数作为返回值。在此基础上编程实现随即输入任意个数,从中挑选出所有素数,并计算所有素数的平方和。
代码
def list_prime(num):
sum = 0
for i in range(1,num):
if (num % i==0):
sum +=1;
if sum>=2:
return 0
else:
return num*num
str = eval(input("请随机输入任意个数(以逗号分割):"))
sum = 0
for i in str:
sum += list_prime(i)
print("你输入的数组中所有素数的平方和为:{}".format(sum))
题目三
题目
判断101-200之间有多少个素数,求取并打印这些素数。要求:定义函数IsPrime()用于求取素数。
代码
def IsPrime(n):
s=0
for i in range(1,n):
if n%i==0:
s+=1
return s
sum=0
for i in range(101,201):
s=0
if IsPrime(i)<2:
sum+=1
print(i,end=" ")
print("\n一共有{}个素数".format(sum))
题目四
题目
用递归的方式编写求n!的函数fact()。
代码
# 方法一:
# def fact(n):
# sum=1
# if n==1 or n==0:
# return 1
# elif(n>1):
# for i in range(1,n+1):
# sum*=i
# return sum
# n=eval(input("请输入n:"))
# print(fact(n))
# 方法二:
def fact(n):
if n==1 or n==0:
return 1
elif(n>1):
return n*fact(n-1)
n=int(input("请输入n:"))
print("{}!={}".format(n,fact(n)))
题目五
题目
分别定义numlist()和charlist()函数,numlist()函数的功能是生成由数字1~26构成的列表,charlist()函数的功能是生成由字符a~z构成的列表。在此基础上编写程序实现生成一个字典,具体形式如下:
{1: ‘a’, 2: ‘b’, 3: ‘c’, 4: ‘d’, 5: ‘e’, 6: ‘f’, 7: ‘g’,
8: ‘h’, 9: ‘i’, 10: ‘j’,11: ‘k’, 12: ‘l’, 13: ‘m’,14: ‘n’,
15: ‘o’, 16: ‘p’, 17: ‘q’, 18: ‘r’, 19: ‘s’, 20: ‘t’,
21: ‘u’, 22: ‘v’, 23: ‘w’, 24: ‘x’, 25: ‘y’,26: ‘z’}
遍历字典,输出所有键为偶数的元素。
代码
def numlist():
num=[]
for i in range(1,27):
num.append(i)
return num
def charlist():
char=[]
for i in range(26):
char.append(chr(ord('a')+i))
return char
# dictionary=zip(numlist(),charlist())
# print(numlist())
# print(charlist())
# print(dictionary)
# print(list(dictionary))
dictionary=dict(zip(numlist(),charlist()))
for key in dictionary:
if key%2==0:
print(dictionary[key],end=" ")
题目六
题目
编写一个递归函数,计算下面的级数:m(n)=1+1/2+1/3+...+1/n
代码
# # 方法一
# def countdown(n):
# return 1/n
#
# n=int(input("请输入n:"))
# sum=0
# for i in range(1,n+1):
# sum+=countdown(i)
# print("sum的值为:{}".format(sum))
# 方法二
def countdown(n):
sum=0
for i in range(1,n+1):
sum+=1/i
return sum
n=int(input("请输入n:"))
print("sum的值为:{}".format(countdown(n)))
题目七
题目
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
month(月份) | 兔子总数(对) |
---|---|
1 | 1 |
2 | 1 |
3 | 2 |
4 | 3 |
5 | 5 |
6 | 8 |
7 | 13 |
8 | 21 |
9 | 34 |
... | ... |
代码
def count(month):
if month==1 or month==2:
return 1
elif month>2:
# 第1个月的兔子总数
a=1
# 第2个月的兔子总数
b=1
# 兔子总数
count=0
for i in range(3,month+1):
count=a+b
a=b
b=count
return count
month = int(input("请输入month:"))
print("第{}个月兔子的总数为:{}对".format(month,count(month)))
# 方法二
def count(month):
sum=0
if month==1 or month==2:
sum=1
elif month>2:
for i in range(1,month+1):
sum=count(i-1)+count(i-2)
return sum
month = int(input("请输入month:"))
print("第{}个月兔子的总数为:{}对".format(month,count(month)))