用Python之for循环解决“韩信点兵问题”,python点兵,中国古代存在这样一种题型


中国古代存在这样一种题型: “韩信点兵,命令士兵每3人站一组,结果多出2名;接着命令士兵5人一组,结果多出3名;他又命令士兵7人一组,结果又多出2名,问总共有最少有多少兵?”后来,解决此题所使用的定理便称作“中国剩余定理”,但实际上,通过编程循环尝试,很容易得出答案。

[Python]代码

#encoding=UTF-8#韩信点兵,命令士兵每3人站一组,结果多出2名;#接着命令士兵5人一组,结果多出3名;#他又命令士兵7人一组,结果又多出2名,问总共有最少有多少兵?def test(people):        if people % 3 == 2 and people % 5 == 3 and people % 7 == 2:                return True        else:                return False#答案数字不会太大,假设最多100人,根据需求可增加。for i in xrange(1,100):        if test(i) == True:                print u"最少有兵",i,u"名。"                break        else:                print u"假设有兵",i,u"名,但不成立;"

评论关闭