经典算法——韩信点兵问题的简单算法

本文介绍了韩信点兵问题,通过剩余定理解决找到满足特定余数条件的阶梯数。首先展示了原始的while循环算法,然后逐步优化,最后给出基于最小公倍数的解决方案。文章提供了详细的JAVA代码实现。
摘要由CSDN通过智能技术生成

        搞开发的人都需要积累一些经典算法,以备不时之须。

        搞开发也有好几年了,积累的一些算法一直没做过整理,这段时间无聊就把这些算法整理以下,以备以后之用。

        本文是关于阶梯的一个算法,用到了剩余定理算法,分享下:

        爱因斯坦曾出过这样一道有趣的数学题,有一个长阶梯,每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶,若每步上5阶,后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后一阶也不剩。问至少有多少阶阶梯?

        这个是我国古代的韩信点兵问题:古人用剩余定理口算或心算,有计算机以后,可以由计算机帮忙解决了,算法很简单(JAVA实现):
        package com.jack.arithmetic;

/**
 * 韩信点兵算法
 * @author jack
 * @date  2010/08/06
 */
public class Ladder {

 public static void main(String[] args) {
  int count = 0;
  while(count>=0){
   if ((count % 2 == 1) && count % 3 == 2 && count % 5 == 4 && count % 6 == 5
     && count % 7 == 0) {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值