原文链接:https://blog.csdn.net/songlh1234/article/details/91391981
- 题目011:古典问题:
有一对兔子,
从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子。
假如兔子都不死。
问每个月的兔子总数为多少?
mm=1 #可以生兔子的兔子
m1=0#满月的兔子
m2=0#满两个月的兔子
for i in range(1,10):
mm=mm+m2
m2=m1
m1=mm
print(i,mm+m1+m2)
题目012:判断101-200之间有多少个素数,并输出所有素数。
arr=[2,3]
for i in range(4,201):
for j in arr:
if i%j==0:
break
else: arr.append(i)
for i in range(len(arr)):
if arr[i]>100:
l=arr[i:]
print(l,len(l))
break
- 题目013:打印出所有的"水仙花数",
所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
【个人备注】: // 取整,% 求余,**3 三次方。知道取整求余写法的就没问题。
for i in range(100,1000):
a=i//100
b=i%100//10
c=i%10
if i==a**3+b**3+c**3:
print(i)
- 题目014:将一个正整数分解质因数。例如:输入90,打印出90=233*5。
TypeError: ‘>’ not supported between instances of ‘str’ and ‘int’
num=int(input(’ 请输入一个数:’))不加int会默认为str型
import math
num=int(input(' 请输入一个数:'))
arr=[]
while num>1:
for i in range(2,int(math.sqrt(num))+1):
if num%i==0:
arr.append(i)
num=num//i
break
else:
arr.append(num)
break
print(arr)
- 题目015:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
score=float(input('请输入分数:'))
if score>=90:
print('A')
elif score>=60:
print('B')
else:
print('C')
- 题目016:输出指定格式的日期。
import time
#print(time.time())#返回当前时间的时间戳(1970纪元后经过的浮点秒数),结果为:1568888576.8638039
#print(time.localtime())#输出时间元组:time.struct_time(tm_year=2019, tm_mon=9, tm_mday=19, tm_hour=18, tm_min=26, tm_sec=15, tm_wday=3, tm_yday=262, tm_isdst=0)
#print(time.asctime())#s时间的一种可读文本形式:Thu Sep 19 18:28:18 2019
#print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())) #2019-09-19 18:37:47
st=time.localtime(time.time())#时间戳转化为时间元组
st=time.strptime('2018/1/23','%Y/%m/%d')#时间文本转化为时间元组
date = time.strftime('%Y-%m-%d',st) # 时间元祖 转化成 时间文本 '%Y-%m-%d %H:%M:%S'
print(date)
- 题目017:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
s=input('请输入一个字符串:\n')
letters,space,digit,others=0,0,0,0
for c in s:
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))
- 题目018:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
a=2
t=5
num=0
for i in range(1,t+1):
num=num+i*a*(10**(t-i))
print(num)
- 题目019:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
for num in range(1,100):
arr=[]
for i in range(1,num):
if num%i==0:
arr.append(i)
if sum(arr)==num:
print(num,arr)
- 题目020:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
total=0
m=100
for i in range(9):
m=m/2
total+=m*2
print(tot