Python计算含有3和被3整除的数之和

**错误代码**
"""
输入一个正数,求出从1开始到这数中所有包含数字3和3的倍数之和。
"""
num = int(input("请输入一个大于1的整数:"))
num01 = 1
sum_num = 0

while num01 <= num:
    if num01 % 3 == 0:
        sum_num += num01
    if "3" in str(num01):
        sum_num += num01
    num01 += 1
print(f"满足条件的数之和为:{sum_num}")

结果:
请输入一个大于1的整数:10
满足条件的数之和为:21

查错:
两个if条件是并列关系,数字3被计算了两次。


正确代码

"""
输入一个正数,求出从1开始到这数中所有包含数字3和3的倍数之和。
"""
num = int(input("请输入一个大于1的整数:"))
num01 = 1 #初始数值
sum_num = 0 #用于累加和

while num01 <= num: #循环结束条件,
    if num01 % 3 == 0: #判断3的倍数
        sum_num += num01
    elif "3" in str(num01): #判断是否含有3
        sum_num += num01
    else:pass #不需要else的时候写pass
    num01 += 1 #循环结束的渐变条件
print(f"满足条件的数之和为:{sum_num}")

结果:
请输入一个大于1的整数:10
满足条件的数之和为:18

学了一段时间Python,又换了一种写法。

"""
输入一个正数,求出从1开始到这数中所有包含数字3和3的倍数之和。输入一个100以内的正数,求出从1开始到这数中所有包含数字3和3的倍数之和。
"""

num = int(input("请输入一个大于1的整数:"))
l = []
sum = 0 #用于累加和

for n in range(1,num + 1):
    if n % 3 == 0: #判断3的倍数
        l.append(n)
        sum += n
    elif "3" in str(n): #判断是否含有3
        l.append(n)
        sum += n
    else:pass #不需要else的时候写pass

print(f"一共有{len(l)}个,累加和:{sum},具体数字为:\n{l}") #输出结果

结果:
请输入一个大于1的整数:100
一共有45个,累加和:2178,具体数字为:
[3, 6, 9, 12, 13, 15, 18, 21, 23, 24, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 45, 48, 51, 53, 54, 57, 60, 63, 66, 69, 72, 73, 75, 78, 81, 83, 84, 87, 90, 93, 96, 99]

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值