- 题目021:猴子吃桃问题
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
num = 1
for i in range(10-1):
num = (num+1)*2
print(num)
- 题目022:两个乒乓球队进行比赛,各出三人。
甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定比赛名单。有人向队员打听比赛的名单。
a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
import itertools
jia=['a','b','c']
yi=['x','y','z']
arr=list(itertools.permutations(yi,3))#列出乙队的所有排列
arr=[[jia[i]+a[i]for i in range(3)] for a in arr]
for i in arr:
if 'ax' in i:
pass
elif 'cx' in i or 'cz' in i:
pass
else:
print(i)
题目023:
打印出如下图案(菱形):
num = 7
for i in range(num):
blank = abs(num//2-i) #z注意不是num//(2-i)是num//2再减i,即7//2=3,3-i
print(' '*blank+'*'*(num-blank*2))
- 题目024:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
a,b,num=2,1,0
for i in range(20):
num+=a/b
a=a+b
b=a-b
print(num)
- 题目025:求1+2!+3!+…+20!的和。
s=0
t=1
for i in range(1,21):
t=i*t
s=s+t
print(s)
- 题目026:利用递归方法求5!。
def fac(x):
if x>1:
return x*fac(x-1)
else:
return x
print(fac(5))
- 题目027:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
def output(s,l):
if l==0:
return
print(s[l-1])
output(s,l-1)
s=input('please input string:')#input默认输入的是字符串
l=len(s)
output(s,l)
- 题目028:有5个人坐在一起,
问第五个人多少岁?他说比第4个人大两岁。
问第4个人,他说比第3个人大两岁。
问第3个人,又说比第2个人大两岁。
问第2个人,说比第1个人大两岁。
最后问第一个人,他说是10岁。
请问第五个人多大?
def age(x):
if x>1:
return 2+age(x-1)
else:
return 10
print(age(5))
题目029:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
num=12345
s=str(num)
print(len(s))
print(s[::-1])#字符串不步长为-1表示从末尾扫描字符串,list倒序可以用list.reverse();
- 题目030:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
num=12321
s=str(num)
for i in range(len(s)//2):
if s[i]!=s[-i-1]:
print(False)
break
else:
print(True)