1.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
paper = 8*10**-5
n = float(paper)
num1 = 0
while n < 8848.13:
n += n
num1 += 1
print(num1)
2. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
num2 = int(input('是第几个月?'))
rabbit_num = 2
rabbit_num2 = rabbit_num
for x in range(2,num2):
rabbit_num,rabbit_num2 = rabbit_num+rabbit_num2,rabbit_num
print(rabbit_num)
3. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
num3 = int(input('请输入一个正整数'))
print(num3,end='=')
for x in range(2,num3):
while num3 % x == 0:
num3 //= x
print(x,end='x')
print(num3)
4. 输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。
m = int(input('请输入一个正整数'))
n = int(input('请输入一个正整数'))
s1=max(m,n)
s2=min(m,n)
while True:
if s1%s2 == 0:
break
else:
s1,s2=s2,s1%s2
print('最大公约数为',s2)
print('最小公倍数为',m*n//s2)
5. 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3. 编程 找出1000以内的所有完数
for num5 in range(1,1001):
numm = 0
nummm = num5
for x in range(1,num5):
if num5 % x == 0:
numm += x
if nummm == numm:
print(nummm)
6.输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
year = int(input('请输入年份'))
month = int(input('请输入月份'))
day = int(input('请输入是几号'))
day_num = 0
for x in range(1,month):
while True:
if x > 7:
break
elif x % 2 == 0 and x != 2:
day_num += 30
break
elif x % 2 == 1:
day_num += 31
break
else:
day_num += 28
break
while True:
if x > 12 or x <= 7:
break
elif x % 2 == 0:
day_num += 31
break
else:
day_num += 30
break
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
day_num += 1
print(day_num + day)
7. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
num7 = int(input('请输入一个四位数'))
qian_num = (num7//1000 + 5) % 10
bai_num = ((num7//100%10 + 5) % 10) * 100
shi_num = ((num7//10%10 + 5) % 10) * 10
ge_num = ((num7%10 + 5) % 10) * 1000
num7 = qian_num + bai_num + shi_num + ge_num
print(num7)
1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)
age = int(input('请输入你的年龄'))
if age < 12:
print("儿童")
elif age < 18:
print('青少年')
elif age < 50:
print('成年人')
else:
print('老年人')
2.计算5的阶乘 5!的结果是
product = 1
for x in range(1,6):
product *= x
print('五的阶乘是',product)
3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。
num1 = 0
product = 1
for x in range(1,21):
num1 += product
for i in (1,x+1):
product *= i
print(num1)
4.计算 1+1/2!+1/3!+1/4!+...1/20!=?
num1 = 0
fen_shu = 1
for x in range(1,21):
fen_shu = 1
fen_shu /= x
num1 += fen_shu
print(num1)
5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。
num1 = int(input('请输入一个正整数'))
num2 = 0
for a in range(1,num1+1):
num2 += a
print(num2)
###### 6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。
num1 = int(input('请输入有几个数相加'))
a = int(input('请输入一个数'))
s = 0
i = 0
for x in range(1,num1+1):
a *= 10
i += a
s += i
print(i)
print(s)
7.输入三个整数x,y,z,请把这三个数由小到大输出。
x = int(input('请输入一个数X'))
y = int(input('请输入一个数y'))
z = int(input('请输入一个数z'))
if x < y:
x = y
if x < z :
x = z
print(x)
8.控制台输出三角形
n = int(input('请输入n'))
for x in range(n,-1,-1):
print(x*'*')#a
n = int(input('请输入一个正整数'))
for x in range(1,n+1,2):
i = (n-x)//2
print(i*' ',x*'*')#b
9.输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
乘法口诀表
for i in range(1,10):
for j in range(1,10):
if j < i:
print(j,'x',i,'=',j*i,'\t\t',end='')
elif j == i:
print(j,'x',i,'=',j*i)
10.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?
for big in range(1,101):
for middle in range(1,101):
for small in range(2,101,2):
if big + middle + small == 100 and big*3 + middle*2 + small/2 == 100:
print(big,middle,small)
11.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡
,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。
for gong in range(0,101):
for ci in range(0,101):
for xiao in range(3,101,3):
if gong + ci + xiao == 100 and gong * 5 + ci * 3 + xiao /3 == 100:
print(gong,ci,xiao)
12.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?
for xifashui in range(1,101):
for yashua in range(1,101):
for xiangzao in range(1,101):
if xifashui * 15 + yashua * 5 +xiangzao * 2 == 100:
print(xiangzao,xifashui,yashua)