Day5-homework

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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容