【程序21】
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
分析:分子和分母的变化规律与斐波那契数列契合
num = 2 # 分子
den = 1 # 分母
lst = []
print('分数序列为:', end='')
for i in range(1, 21):
print(f'{num}/{den}', end=' ')
lst.append(num / den)
num, den = num + den, num
print('')
print('该分数序列的前20项和为:', sum(lst))
【程序22】
题目:求1+2!+3!+…+20!的和 。
lst = []
print('1 +', end=' ')
for i in range(1, 21):
n = 1
for j in range(1, i+1):
n *= j
lst.append(n)
if 2 <= i < 20:
print(f'{i}! +', end=' ')
elif i == 20:
print(f'{i}!', end='')
print('的和为:', sum(lst))
【程序23】
题目:利用递归方法求5!。
def fun(i):
if i == 1:
return 1
return i * fun(i -1)
x = fun(5)
print(x)
【程序24】
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
def fun(s, l):
if l == 0:
return
print(s[l-1])
fun(s, l-1)
s = input('enter a string:')
l = len(s)
fun(s, l)
【程序25】
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
num = input('输入一个不多于5位的正整数:')
if num.isdigit():
print('它有 %d 位数' % len(num))
num = num[::-1]
print('逆序打印出各位数字,分别是:')
for i in range(0, len(num)):
print(num[i])
【程序26】
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
num = int(input('输入一个五位数:'))
ge = num % 10
shi = num // 10 % 10
bai = num // 100 % 10
qian = num // 1000 % 10
wan = num // 10000
if ge == wan and shi == qian:
print('该数是回文数!')
else:
print('该数不是回文数!')
num = input('输入一个五位数:')
if num[0] == num[4] and num[1] == num[3]:
print('Yes!')
else:
print('No!')
【程序27】
题目:求100之内的素数。
print('100以内的素数有:', end='')
for i in range(1, 101):
for j in range(2, i):
if i % j == 0:
break
else:
print(i, end=' ')
【程序28】
题目:对10个数进行排序。
num = input('输入十个数,以一个空格隔开:')
lst = num.split(' ')
l = []
for i in range(0, len(lst)):
l.append(int(lst[i]))
x = sorted(l)
print(x)
【程序29】
题目:求一个3*3矩阵对角线元素之和 。
lst = []
for i in range(3):
for j in range(3):
lst.append(int(input('enter a number: ')))
print('数组为:', lst)
sum = 0
for k in range(3):
sum += lst[3*k + k]
print('对角线之和为:', sum)
【程序30】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
import random
lst = []
for i in range(10):
a = random.randint(1, 100)
lst.append(a)
lst.sort()
print(lst)
num = int(input('输入一个1到100之间的整数:'))
for j in range(0, len(lst)):
if num <= lst[j]:
lst.insert(j, num)
break
print(lst)