python小代码(三)
1.
#一球从100米高度自由落下,每次落地后反跳回原高度的一半;
#再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
s=100
x=1
i=100
while x!=10:
i=i*0.5
s=s+i*2
x+=1
print "the total of distance is %3.3f\n"%(s)
print "the tenth distance is %1.3f"%(i*0.5)
2.
#有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...
#求出这个数列的前20项之和
s,a,b=0.0,2.0,1.0 #赋值为带小数部分是为了识别float型
for i in range(20):
s=s+a/b
print a,'/',b
temp=b
b=a
a=a+temp
print "Sum is %9.6f"%(s)
3.
#求1+2!+3!+...+20!的和
s,m,temp=0,0,1
for i in range(1,21):
m=i*temp
temp=m
s=s+m
print s
解析:要注意在运行时temp保存上一次循环的结果。
4.
#利用递归方法求5!
def func(n):
if n==0|n==1:
res=1
elif n>1:
res=func(n-1)*n
return res
print func(5)
5.
#给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
#(这里是一种简单的算法,师专数002班赵鑫提供)
x=input("enter: ")
if x==0:
print "must be positive number"
elif x>99999:
print "can't enter a number that greater than 99999"
else:
a=x/10000
b=x%10000/1000
c=x%1000/100
d=x%100/10
e=x%10
if a!=0:
print "it's 5\n%d%d%d%d%d"%(e,d,c,b,a)
elif b!=0:
print "it's 4\n%d%d%d%d"%(e,d,c,b)
elif c!=0:
print "it's 3\n%d%d%d"%(e,d,c)
elif d!=0:
print "it's 2\n%d%d"%(e,d)
elif e!=0:
print "it's only 1\n%d"%(e)