Python实现“韩信点兵”

题目:

相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他没次只掠一眼队伍的排尾就知道总人数了。输入包含多组数据,每组数据包含3个非负整数a,b,c,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100。输入到文件结束为止

样例输入
2 1 6
2 1 3

样例输出
Case 1: 41
Case 2: No answer

思路:

设总人数为n,则当三人一排时有 n%3 == a, 当五人一排时有 n%5 == b,当七人一排时有 n%7 == c,因此求出同时满足上述三个条件的n即可

代码:

import sys

count = 0
while True:
    num = input()
    if num != "":
        num = num.split()
        a = num[0]
        b = num[1]
        c = num[2]
        count += 1
        if len(num) == 3 and int(a) < 3 and int(b) < 5 and int(c) < 7:
            flag = True
            for i in range(10, 101):
                if i % 3 == int(a) and i % 5 == int(b) and i % 7 == int(c):
                    print("Case {0}: {1}".format(count, i))
                    flag = False
                    break

            if flag:
                print("Case {0}: No answer".format(count))

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

相关阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 13,297评论 0 13
  • 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠...
    hope囧永远二阅读 4,860评论 0 2
  • 参考链接:http://blog.csdn.net/litiouslove/article/details/789...
    Gaolex阅读 3,811评论 0 1
  • Python 练习实例15 Python 100例 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学...
    就如此简单阅读 3,332评论 0 0
  • 迟到 每到周末,这孩子都会把时间忘得一干二净,这不吃完午饭以后就一直在学习桌上忙个不...
    知足常乐朵儿阅读 3,339评论 0 2

友情链接更多精彩内容