找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1201|回复: 2
打印 上一主题 下一主题
收起左侧

C语言的算法之:捕鱼和分鱼。

[复制链接]
跳转到指定楼层
楼主


今天一起分析C语言的算法之:捕鱼和分鱼。

算法题目:

捕鱼和分鱼:A、B、C、D、E 五个人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。

日上三杆,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。C、D、E依次醒来,也按同样的方法拿走鱼。问他们合伙至少捕了多少条鱼?

                        1.编程思路分析

编程思路:

用C语言中while语句和if-else语句嵌套实现。

                        2.程序范例

#include <stdio.h>

main()

{

    int all=6;

    int aout=0;//用来放最终结果

    while(1)

    {

        int i=5;

        int y=0;

        all=aout;

        while(i>0)

        {

            if(all!=1 && all%5==1)

            {

                /*丢掉一条,并分成5份*/

                all=(all-(all/5)-1);  

                i--;//做五次

                y++;

            }

            else

            {

                i=0;

            }

        }

        if(y==5)

        {

            printf("他们打了%d条鱼",aout);

            break;

        }

        aout++;

    }

}


程序运行结果案例:



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:592807 发表于 2022-8-9 11:11 | 只看该作者
剩余3121 A扔掉一条分5份,每份624条。
回复

使用道具 举报

板凳
ID:592807 发表于 2022-8-9 11:28 | 只看该作者
剩余3121                   A拿走(3121-1)/5 = 624
剩余642*4 = 2496     B拿走(2496-1)/5=499
剩余499*4 = 1996     C拿走(1996-1)/5 = 399
剩余399*4 = 1596     D拿走(1596-1)/5 = 319
剩余319*4 = 1276      E拿走(1276-1)/5 = 255
剩余255*4 = 1020       ABCDE都走了剩下的鱼在空地
1020+255+319+399+499+624+5 = 3121
剩下1020条鱼泥怎么算的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表