题目1:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
#!/user/bin/env python2
# -*-coding:utf-8 -*-
a=int(raw_input('Enter the month:'))
f1=1
f2=1
for i in range(1,a+1):
print f1,f2,
f1=f1+f2
f2=f1+f2
题目2:判断101-200之间有多少个素数,并输出所有素数。
#!/user/bin/env python2
# -*-coding:utf-8 -*-
from math import sqrt
a=int(raw_input("Enter the begin num:"))
b=int(raw_input("Enter the end num:"))
c=[]
d=0
for i in range(a,b+1):
k=int(sqrt(i+1)+1)
for j in range(2,k):
if i%j==0:
break
else:
c.append(i)
d+=1
print 'The total num is:%d'%d
print c
题目3:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
#!/user/bin/env python2
# -*-coding:utf-8 -*-
for a in range(100,1000):
i=a/100
j=a/10%10
k=a%10
if a==i**3+j**3+k**3:
print a,
题目4:将一个正整数分解质因数。例如:输入90,打印出90=233*5。
#!/user/bin/env python2
# -*- coding:utf-8 -*-
def reduceNum(n):
if n<=0:
print 'The num is wrong!'
return
elif n==1:
print 'The result is 1'
return
print 'The result is',
while n>1: //确保n>1时一直在循环,直至n==1时结束。
for i in xrange(2,n+1):
if n%i==0:
n /= i
if n==1:
print i
else:
print i,'*',
break //此处break为跳出for i in xrange(2,n+1)的那层循环
n=int(raw_input('Enter a integer:'))
print reduceNum(n)
题目5:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
#!/user/bin/env python2
# -*- coding:utf-8 -*-
def grade(n):
if n>100 or n<0:
print 'The grade is wrong!'
else:
if n>=90:
print 'The grade is A'
elif n>=60:
print 'The grade is B'
else:
print 'The grade is C'
n=int(raw_input('Enter the grade:'))
print grade(n)
题目6:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
#!/user/bin/env python2
# -*- coding:utf-8 -*-
import string
s=raw_input('Enter a string:\n')
letters=0
space=0
digit=0
others=0
i=0
while i<len(s):
c=s[i]
i+=1
if c.isalpha():
letters+=1
elif c.isspace():
space+=1
elif c.isdigit():
digit+=1
else:
others+=1
print 'char=%d,space=%d,digit=%d,others=%d'%(letters,space,digit,others)
题目7:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
#!/user/bin/env python2
# -*- coding:utf-8 -*-
Tn=0
Sn=[]
n=int(raw_input('n='))
a=int(raw_input('a='))
if a<0 or a>9:
print 'a is wrong!'
else:
for i in range(n):
Tn=Tn+a
a=a*10
Sn.append(Tn)
print Tn
Sn=reduce(lambda x,y:x+y,Sn)
print 'Sum=',Sn
题目8:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
#!/user/bin/env python2
# -*- coding:utf-8 -*-
from sys import stdout
a=int(raw_input('Enter the first num:'))
b=int(raw_input('Enter the last num:'))
for j in range(a,b):
k=[]
n=-1
s=j
for i in range(1,j):
if j%i==0:
n+=1
s-=i
k.append(i)
if s==0:
print j
for i in range(n):
stdout.write(str(k[i]))
stdout.write(' ')
print k[n]
题目9:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
#!/user/bin/env python2
# -*- coding:utf-8 -*-
tour=[]
height=[]
hei=int(raw_input('Enter the height:'))
time=int(raw_input('Enter the times:'))
for i in range(1,time+1):
if i==1:
tour.append(hei)
else:
tour.append(2*hei)
hei /=2
height.append(hei)
print 'Sum height is {0}'.format(sum(tour))
print 'The %dst shell is {0}'.format(height[-1]) %time
网友评论