1. 一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
n = 0.08
i = 0
while n/1000<8818.13:
n *= 2
i += 1
print(i)
2. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
n = int(input("输入第几个月: "))
m = 0
for i in range(1, n+1, 3):
m += 1
print("第",n,"个月有",2**m,"只兔子")
3. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
num = int(input("输入一个正整数: "))
print(num,end='=')
n = 2
for i in range(2, num):
if num%n == 0:
print(n,end='')
n = 2
num = num//n
if num == 1:
break
else:
print('*')
continue
else:
n += 1
continue
4. 输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。
m = int(input("输入m: "))
n = int(input("输入n: "))
max =
5. 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3. 编程找出1000以内的所有完数
a = 2
half = 0 #为此时计算数字的一半
MyList = [] #保存不是素数的所有分解因子
flag = False #判断是否有分解因子 False为素数 True表示有分解因子
sum = 0
while a<=1000:
half = a//2
while half>=1:
if a%half == 0: #找到一个分解因子
MyList.append(half) #将分解因子存入数组中
flag = True
half = half-1 #将half减一,一直进行while循环找出所有的分解因子
if flag==True:
for x in MyList: #将所有因子相加
sum += x
if sum == a: #说明是完数
print(a,'是一个完数。分解因子为:')
for y in MyList: #输出所有的分解因子
print(y,end=' ')
print('\n')
a += 1 #判断完一个数以后,将相关条件都重置
MyList = []
flag = False
sum=0
6. 输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
year = int(input("请输入年分:"))
month = int(input("请输入月份:"))
day = int(input("请输入日:"))
print("-" * 20)
day += (month - 1) * 30
if month < 9:
day += month // 2
else:
day += (month + 1) // 2
if month > 2:
if year % 400 == 0 or year % 4 == 0 and year % 100 != 0:
day -= 1
else:
day -= 2
print("是一年的第%d天"%day)
7. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
num1 = int(input("请输入四位的整数: "))
a = num1//1000 + 5
b = num1//100%10 + 5
c = num1//10%10 + 5
d = num1%10 + 5
a, d = d%10, a%10
b, c = c%10, b%10
print(a,b,c,d,sep='')
网友评论