python练习题5

这篇博客包含了Python的基础、进阶和挑战题目。基础题包括计算奇偶数、打印奇偶数、绳子长度减半问题以及找出特定条件的数。进阶题涉及统计个位为2且能被3整除的数、判断数字位数、打印水仙花数、连续输入数字的程序。挑战题涵盖了101~200的素数统计、斐波那契数列计算以及纸张对折高度问题和‘百马百担’问题的解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础题

  1. 依次输入两个整数,如果两个数相减的结果为奇数则输出该结果,否则输出提示信息结果不是奇数

num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
num3 = num1 - num2
if num3 % 2 != 0:
    print(num3)
else:
    print("结果不是奇数")
  1. 使用for循环输出 0到100内所有的奇数。

for i in range(1, 101,2):
    print(i)
  1. 使用while循环输出0到100内所有的偶数。

自己的办法:
num = 0
while num <= 100:
    if num % 2 == 0:
        print(num)
      num += 1
    
 老师的办法:
num=0
while num<=100:
    print(num)
    num+=2
  1. 3000米长的绳子, 每天减一半, 问多少天后这个绳子会小于5米 【不考虑小数】

count=0
i=3000
while i >=5:
    count+=1
    i/=2
print(count)
  1. 输出1到100中能被3整除 or 个位为3的数

自己的办法:
num = 1
while num <= 100:
    if num % 3 == 0 or num % 10 == 3:
        print(num)
    num += 1
    
 老师的办法:
for i in range(1,101):
    if i % 3 ==0 or i % 10 ==3:
        print(i)

进阶题

  1. 统计100以内个位数是2并且能够被3整除的数的个数。

count=0
for i in range(0,101):
    if i % 10 ==2 and i % 3==0:
        count+=1
print(count)
  1. 输入任意一个正整数,求它是几位数。

注意:不允许使用判断字符串长度的方式来求解。

num = 12345
count = 0
while num:    
    num //= 10
    count += 1
print(count)
  1. 打印所有的水仙花数。

说明:水仙花数是一个三位数,其各位数字⽴方和等于该数本身。

例如:153是⽔仙花数,因为 153 = 1³ + 5³ + 3³

for i in range(100, 1000):
    if (i // 100) ** 3 + (i // 10 % 10) ** 3 + (i % 10) ** 3 == i:
        print(i,"是水仙花数")
  1. 写一个程序可以不断的输入数字,如果输入的数字是0,打印程序结束后结束该程序。

运行效果: 请输入数字: 9 请输入数字: 762 请输入数字: 18 请输入数字: 0 程序结束

while True:
    num = int(input("请输入一个数字:"))
    if num == 0:
        print("> 程序结束")
        break

挑战题(选做)

  1. 统计101~200中素数的个数,并且输出所有的素数。(素数又叫质数,就是只能被1和它本身整除的数)

自己的办法:
for num in range(101,201):
    i = 2
    while num > i:
        if num % i == 0:        
            break
        i += 1
    else:
        print(num)
        
老师的办法:        
count = 0
for n in range(101, 201):
    for i in range(2, n):
        if n % i == 0:
            break
    else:
        print(n, "是素数")
        count += 1
​
  1. 求斐波那契数列中第n个数的值,n是正整数。n值由控制台输入

说明:斐波那契数列是这样的一个数列:1、1、2、3、5、8、13、21、34、.... ,第一个数和第二个数是1,从第三个数开始每个元素是前两个元素相加的和。

n = int(input("请输入获取第几个数字:"))
if n <= 2:
    print(1)
else:
    a = 1  # 表示第一个数字
    b = 1  # 表示第二字数字
    for i in range(3, n + 1):
        c = a + b  # c表示前面两个数的和
        a = b
        b = c
    print(c, end="")
print()
  1. 一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?

count = 0
i = 0.08
while i <= 8848130:
    count += 1
    i *= 2
print(count)
  1. "百马百担"问题:一匹大马能驮3担货,一匹中马能驮2担货,两匹小马能驮1担货,如果用一百匹马驮一百担货,问有大、中、小马各几匹?

提示:穷举法。

for i in range(34):  # 表示大马
    for j in range(50):  # 表示中马
        k = 100 - i - j  # 表示小马数量
        if i * 3 + j * 2 + k * 0.5 == 100:
            print(i, j, k)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值