python 小学数学,一个小学的数学题

近日在微信群里,一位朋友分享了一个小学的数学题目,题目大意如下:

"""

小学奥数题目:

有一个小于500的三位数abc,对这个三位数,甲乙丙丁有如下说法:

甲:abc可以被2整除3次;

乙:abc可以被3整除2次;

丙:abc可以被7整除;

丁:abc的各个数字之和是15;

已知甲乙丙丁有一个人说了谎话;

请问2a+b-c=?

"""

最开始准备使用枚举法尝试获取答案,但是结果繁琐.于是灵机一动.写了一个简单的程序来循环判断得到了答案.python示例代码如下:

def main():

# 定义变量num,代表这个整数

for num in range(1, 500): # 循环1-500的整数

a = num // 100 # 获得百位数

b = (num // 10) % 10 # 获得十位数

c = num % 10 # 获得个位数

Fir = num % (2*2*2) # 甲

Sec = num % (3*3) # 乙

Thi = num % 7 # 丙

For = a + b + c # 丁

if Fir == 0 and Sec == 0 and Thi == 0: # 假设丁说谎,甲乙丙的条件成立

print('丁说谎,abc=%s' % num)

print('2a+b-c=%s' % (2*a + b - c))

elif Fir == 0 and Sec == 0 and For == 15: # 假设丙说谎,甲乙丁的条件成立

print('丙说谎,abc=%s' % num)

print('2a+b-c=%s' % (2 * a + b - c))

elif Fir == 0 and Thi == 0 and For == 15: # 假设乙说谎,甲丙丁的条件成立

print('乙说谎,abc=%s' % num)

print('2a+b-c=%s' % (2 * a + b - c))

elif Sec == 0 and Thi == 0 and For == 15: # 假设甲说谎,乙丙丁的条件成立

print('甲说谎,abc=%s' % num)

print('2a+b-c=%s' % (2 * a + b - c))

if name == '__main__':

main()

运行结果:

乙说谎,abc=168

2a+b-c=0

其实逻辑判断条件很简单,同时认为其实编程思想可以用来解决很多的实际生活问题,而非一味的码代码~

原文链接:https://segmentfault.com/a/1190000012946532

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值