深入浅出学算法009-韩信点兵

本文通过韩信点兵的历史典故,介绍了一种基于枚举算法解决数学问题的方法。在一场战役后,韩信利用3人一排、5人一排、7人一排的排列方式,迅速计算出剩余士兵的数量,展示了其卓越的军事才能和数学智慧。文章通过C语言代码实现了这一算法,帮助读者理解如何通过计算机编程解决此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4008: 深入浅出学算法009-韩信点兵
Time Limit: 1 Sec Memory Limit: 64 MB
Submit: 1886 Solved: 1549
Description
 秦朝末年,楚汉相争。有一次,韩信将1500名将士与楚王大将李锋交战。苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是,韩信整顿兵马也返回大本营。当行至一山坡,忽有后军来报,说有楚军骑兵追来。只见远方尘土飞扬,杀声震天。汉军本来已十分疲惫,这时队伍大哗。韩信兵马到坡顶,见来敌不足五百骑,便急速点兵迎敌。他命令士兵3人一排,结果多出2名;接着命令士兵5人一排,结果多出3名;他又命令士兵7人一排,结果又多出2名。韩信马上向将士们宣布:我军有超过*名勇士,敌人不足五百,我们居高临下,以众击寡,一定能打败敌人。汉军本来就信服自己的统帅,这一来更认为韩信是“神仙下凡”、“神机妙算”。于是士气大振。一时间旌旗摇动,鼓声喧天,汉军步步逼近,楚军乱作一团。交战不久,楚军大败而逃。
Input
没有输入
Output
输出一行,值为韩信宣布的勇士数(在1000与1100之间)
这是一道很水的题;简单枚举一下就过了;把题目读懂问题就不大

#include <stdio.h>
int main()
{
    int n,m;
    int i;
    for(i=1000;i<=1100;i++)
    {
        if(i%3==2&&i%5==3&&i%7==2)
        {
            printf("%d\n",i);
            break;
        }
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值