找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1887|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

C語(yǔ)言的算法之:捕魚(yú)和分魚(yú)。

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主


今天一起分析C語(yǔ)言的算法之:捕魚(yú)和分魚(yú)。

算法題目:

捕魚(yú)和分魚(yú):A、B、C、D、E 五個(gè)人在某天夜里合伙去捕魚(yú),到第二天凌晨時(shí)都疲憊不堪,于是各自找地方睡覺(jué)。

日上三桿,A第一個(gè)醒來(lái),他將魚(yú)分為五份,把多余的一條魚(yú)扔掉,拿走自己的一份。B第二個(gè)醒來(lái),也將魚(yú)分為五份,把多余的一條魚(yú)扔掉,拿走自己的一份。C、D、E依次醒來(lái),也按同樣的方法拿走魚(yú)。問(wèn)他們合伙至少捕了多少條魚(yú)?

                        1.編程思路分析

編程思路:

用C語(yǔ)言中while語(yǔ)句和if-else語(yǔ)句嵌套實(shí)現(xiàn)。

                        2.程序范例

#include <stdio.h>

main()

{

    int all=6;

    int aout=0;//用來(lái)放最終結(jié)果

    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條魚(yú)",aout);

            break;

        }

        aout++;

    }

}


程序運(yùn)行結(jié)果案例:



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

板凳
ID:592807 發(fā)表于 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都走了剩下的魚(yú)在空地
1020+255+319+399+499+624+5 = 3121
剩下1020條魚(yú)泥怎么算的。
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:592807 發(fā)表于 2022-8-9 11:11 | 只看該作者
剩余3121 A扔掉一條分5份,每份624條。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表