1.
有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对? 分析:兔子的规律为数列,1,1,2,3,5,8,13,21
def fib(n):
if n<=2:
return 1
else:
return fib(n-1)+fib(n-2)
i = int(input("输入月:"))
print("%d月后兔子的数量为:%d"%(i,fib(i)))
2.
猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃一个,以后每天都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子。求第一天共摘了多少个?
sum = 1
for i in range (9 ,0, -1):
sum = (sum+1)*2
print(sum)
3.
计算1000以内所有不能被7整除的整数之和
sum=0
for i in range(0,1001):
if i % 7 != 0 :
sum += i
print('1000以内所有不能被7整除的整数之和:', sum)
4.
一张纸的厚度大约是0.08mm,对折多少次之后能达到或超过珠穆朗玛峰的高度(8848.13米)
a = 0.00008
float(a)
sum1 = 0
while True:
if a < 8848.13:
a = a * 2
sum1 += 1
continue
else:
break
print('对折', sum1, '次后高度为', a, '米才能达到珠穆朗玛峰高度')
5.
1、有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完?
a=1020
n=0
while a >0:
n=n+1
a=a-(a//2+2)
print(n,"天后能卖完")
6.
任意输入一个整数(小于10位),输出它一共有多少位。
a = int(input('请输入一个正整数:'))
b=0
while True:
a //=10
b+=1
if a==0:
break
print(b)
7.
本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?
for i in range(1,6):
money = 10000*((1+0.003)**i)
print(money)
8.
从控制台输入一个正整数,计算该数的阶乘。
num = int(input("请输入正整数:"))
sum = 1
if num == 0:
print("0的阶乘是1")
elif num < 0:
print("负数没有阶乘")
else:
for i in range(1, num + 1):
sum = sum * i
print("%d的阶乘是:%d" % (num, sum))
9.
计算 1+2-3+4-5+6-7…+100的结果
a=1
b=0
for i in range(2, 101):
if i % 2 == 0 :
a = a + i;
else:
b = (b + i);
print(a-b)
10
输入两个整数,按由小到大的顺序输出这两个数
a=float(input("请输入第一个数:"))
b=float(input("请输入第二个数:"))
if a<b:
print(a,b)
else:
print(b,a)
11
图书批发商店的某本书的零售价是26.5元/本,如果客户一次性购买100本以上(包括100本),则每本的价格打9折,如果客户一次性购买500本以上(包括500本),则每本的价格打8折并返回1000元给客户,请分别计算购买8本、150本、600本的应付金额是多少。要求购买书的数量从控制台输入。
a=int(input("请输入购买的数量"))
if a<100:
print("请支付:",26.5*a)
elif a<500:
print("请支付:", 26.5 * a*0.9)
else:
a>=500
print("请支付:", 26.5 * a*0.8-1000)
总结
while 和 for if 各种循环语句的用法,
|