韩信点兵python算法_韩信点兵算法

最近,看书看到这个算法。很有意思。

算法来源:

话说有一次韩信带兵,人数在百人左右,然后它就那些士兵排队,3个人一行排的时候多了一个人,7个人一列排的时候少2个人,5个人排的时候刚刚好。

刚开始碰到到这道题的时候,不过后来突然想到了一个函数,问题就比较好解决了。

在解决这个问题之前,请大家看一个方法:Math.DivRem()

DivRem(int a,int b,int out result):它的意思是说,输入2个整数,然后输出它们的余数。

到这里,想到了那个方法,韩信点兵的算法的根源就是余数问题:

static int HanXinAlgorithm()

{

int num1 = 0;

int num2 = 0;

int num3 = 0;

int result = 0;

for (int i = 0; i < 100; i++)

{

Math.DivRem(i, 3, out num1);

Math.DivRem(i, 5, out num2);

Math.DivRem(i, 7, out num3);

if (num1 == 1 && num2 == 0 && num3 == 5)

result = i;

}

return result;

}

得到的结果就是:

希望对你们有帮助。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值