1.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
n = 0.008
count = 1
while n < 8848130:
n = 2 * n
count += 1
print('需要对折',count,'次')
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
m = int(input('要计算的月数:'))
if m < 3:
S = 2
elif m < 5:
S = 2 + 2 * (m - 2)
elif m < 7:
S = 6
s = 2
for _ in range(m - 4):
s += 2
S += s
else:
S = 16
s1 = 4
s2 = 6
for _ in range(m - 6):
s1,s2 =s2,s1 + s2
S += s2
print('第',m,'个月有',S,'只兔子')
- 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5
n = int(input('要计算的数:'))
i = 2
print(n,'= ',end='')
while 1 < i < n:
if n % i == 0:
print(i,'* ',end='')
n = n // i
else:
i += 1
print(n)
- 输入两个正整数m和n,求其最大公约数和最小公倍数。
m = int(input('m = '))
n = int(input('n = '))
for i in range(m,m*n+1):
if i % m == 0:
if i % n == 0:
print(m,'和',n,'的最小公倍数是',i,'最大公约数是',m*n//i)
break
- 找出1000以内的所有完数
F = []
for i in range(2,1000):
S = 0
F.clear()
for j in range(1,i):
if i % j == 0:
F.append(j)
for k in range(len(F)):
S += F[k]
if S == i:
print(i)
6.输入某年某月某日,判断这一天是这一年的第几天?
y = int(input('year:'))
m = int(input('month:'))
d = int(input('day:'))
list_ly = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
list_oy = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if y % 400 == 0 or y % 100 != 0 and y % 4 ==0:
n = sum(list_oy[:m]) + d
else:
n = sum(list_ly[:m]) + d
- 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
M = int(input('输入要加密的四位整数:'))
C = []
list_M = [M // 1000, M % 1000 // 100, M % 100 // 10, M % 10]
for index in range(len(list_M)):
list_M[index] = (list_M[index] + 5) % 10
for item in list_M[::-1]:
C.append(item)
print(C)
- 获取第n个丑数。 什么是丑数: 因子只包含2,3,5的数
n = int(input('获取第几个丑数:'))
i = 1
count = 0
while count != n:
j = i
while i % 2 == 0:
i = i // 2
while i % 5 == 0:
i = i // 5
while i % 3 == 0:
i = i // 3
if i == 1:
count += 1
i = j + 1
print(j)