1.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
a = 0.08 #原来的厚度
c = 0 #循环次数
while a < (8848.13*1000): #a小于循环就继续循环,直到大于珠穆朗玛峰的高度
if a < (8848.13*1000): #如果a 小于这个高度就继续x2
a*=2 #每循环一次厚度就x2倍
c += 1 #循环一次就加一次 次数
print(c)
2. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
2,4 6
m = 6 #自己输入第几个月
a = 0 #假如第一个月0只 第2个月 2只 第三个月4只
b = 2 # 原来兔子2只,从2
z = 0 #先建一个变量来保存 每个月总数
s = 1 #原来一月份还是两只
for _ in range(2, m+1):#循环到多少月份m 输入多少就是多少
# 根据前两个数的值,计算出当前值
z = a + b #z 是总数 从2开始循环 就是从2开始,循环多少次就是前面2个月相加等于现在
a = b #把 b 的 2赋值给a
b = z # 把当前的总数赋值给前一个月b
s = s+1 #每个循环的月份 从1开始 每次循环加1
print(s,'月份',z,'只')
3. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
n = int(input('这输入:'))
while n%2==1:
n = int(input('这个数字没有质因数,请重新输入:'))
while n == 2:
n = int(input('这个数字没有质因数,请重新输入:'))
while n == 3:
n = int(input('这个数字没有质因数,请重新输入:'))
print('在这',n,'=',end='') #要先打印出这个数 后面会变
for i in range(2,n): #循环从2开始到比这个数小个的数
while n % i == 0: #如果取余数==0 就说明i是他的质因数
n = n / i #就把n / i 再取除他取余数 然后打印出来
print(i,end='*')
print()
print(31%2)
4. 输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。
5. 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3. 编程 找出1000以内的所有完数
6.输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以3月5日为例,应该先把前两个月的加起来,
然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
7. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
mm = 9876 #要传递的要加密的4位数数据
d = ((mm%10)+5)%10# 取个位的数 然后加5 再取除10的余数
c = ((mm//10%10)+5)%10# 取十位的数 然后加5 再取除10的余数
b = ((mm//100%10)+5)%10# 取百位的数 然后加5 再取除10的余数
a = ((mm//1000%10)+5)%10# 取千位的数 然后加5 再取除10的余数
a,d = d,a #第一位数 和第四位数换位置,a,d 互换赋于值,相当于换位置
b,c = c,b #第二位数 和第三位数换位置,b,c 互换赋于值,相当于换位置
print('加密后的结果:',a,b,c,d) # 完成加密 打印