亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解C語(yǔ)言處理算經(jīng)中著名問(wèn)題百錢百雞

 更新時(shí)間:2022年02月24日 17:17:22   作者:飛向星的客機(jī)  
古代的很多數(shù)學(xué)問(wèn)題都可以用現(xiàn)代的編程語(yǔ)言去嘗試解決,就如本篇,將會(huì)帶你通過(guò)C語(yǔ)言來(lái)解決算經(jīng)中百錢百雞問(wèn)題,感興趣的朋友來(lái)看看吧

?? 前言

Wassup guys,我是Edison??

今天是C語(yǔ)言每日一練,第117天!

Let's get it!

1. 問(wèn)題描述

中國(guó)古代數(shù)學(xué)家張丘健在他的 《算經(jīng)》 中提出了一個(gè)著名的 “百錢百雞問(wèn)題” ?? 一只公雞值五錢,一只母雞值三錢,三只小雞值一錢,現(xiàn)在要用百錢買百雞,請(qǐng)問(wèn)公雞、母雞、小雞各多少只?

2. 問(wèn)題分析

如果用百錢只買公雞,最多可以買20只,但題目要求買一百只,所以公雞數(shù)量在 0~20 之間。 同理,母雞數(shù)量在 0~33 之間。 在此把公雞、母雞和小雞的數(shù)量分別設(shè)為cock、hen、chicken,則 c o c k + h e n + c h i c k e n = 100 cock+hen+chicken=100 cock+hen+chicken=100 因此百錢買百雞問(wèn)題就轉(zhuǎn)換成解不定方程組的問(wèn)題了:

3. 算法思路

對(duì)于不定方程組,我們可以利用窮舉循環(huán)的方法來(lái)解決。 公雞范圍是 0~20,可用語(yǔ)句for(cock=0; cock<=20; cock++)實(shí)現(xiàn)。 錢的數(shù)量是固定的,要買的雞的數(shù)量也是固定的,母雞數(shù)量是受到公雞數(shù)量限制的。 同理,小雞數(shù)量受到公雞和母雞數(shù)量的限制,因此可以利用三層循環(huán)的嵌套來(lái)解決:第一層循環(huán)控制公雞數(shù)量,第二層控制母雞數(shù)量,最里層控制小雞數(shù)量。

4. 代碼實(shí)現(xiàn)

??

#include <stdio.h>

int main()
{
    int cock = 0;
    int hen = 0;
    int chicken = 0;

    for (cock = 0; cock <= 20; cock++) //外層循環(huán)控制公雞數(shù)量取值范圍0~20
    {
        for (hen = 0; hen <= 33; hen++) //中層循環(huán)控制母雞數(shù)量取值范圍0~30
        {
            for (chicken = 0; chicken <= 100; chicken++) //內(nèi)層循環(huán)控制小雞數(shù)量取值范圍0~100
            {
                //在內(nèi)外層循環(huán)條件控制下小雞數(shù)量的取值限制用難一組解的合理性
                if ((5*cock + 3*hen + chicken/3.0 == 100) && (cock + hen + chicken == 100))
                {
                    printf("cock=%2d, hen=%2d, chicken=%2d\n", cock, hen, chicken);
                }
            }
        }
    }
    return 0;
}

運(yùn)行結(jié)果??

5. 算法優(yōu)化

以上算法需要窮舉嘗試 21 ? 34 ? 101 = 72114 21 *34*101=72114 21?34?101=72114 次,算法的效率明顯太低了。 對(duì)于本題來(lái)說(shuō),公雞的數(shù)量確定后,小雞的數(shù)量就是固定為 100 ? c o c k ? h e n 100-cock-hen 100?cock?hen,無(wú)須進(jìn)行窮舉了。 此時(shí)約束條件就只有一個(gè): 5 ? c o c k + 3 ? h e n + c h i c k e n / 3 = 100 5*cock+3*hen+chicken/3=100 5?cock+3?hen+chicken/3=100。 這樣我們利用兩重循環(huán)即可實(shí)現(xiàn)。

此算法只需嘗試 21 ? 34 = 714 21 * 34 = 714 21?34=714 次,實(shí)現(xiàn)時(shí)約束條件中限定了chicken必須能被3整除。 只有chicken能被3整除時(shí)才會(huì)繼續(xù)進(jìn)行約束條件 5 ? c o c k + 3 ? h e n + c h i c k e n / 3 = 100 5*cock+3*hen+chicken/3=100 5?cock+3?hen+chicken/3=100 的判斷。 這樣省去了chicken不能被3整除時(shí)需要進(jìn)行的算術(shù)計(jì)算和條件判斷,進(jìn)一步提高了算法的效率。

到此這篇關(guān)于詳解C語(yǔ)言處理算經(jīng)中著名問(wèn)題百錢百雞的文章就介紹到這了,更多相關(guān)C語(yǔ)言 百錢百雞內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • 算法學(xué)習(xí)入門之使用C語(yǔ)言實(shí)現(xiàn)各大基本的排序算法

    算法學(xué)習(xí)入門之使用C語(yǔ)言實(shí)現(xiàn)各大基本的排序算法

    這篇文章主要介紹了使用C語(yǔ)言實(shí)現(xiàn)各大基本的排序算法的方法,同時(shí)也對(duì)算法的選擇問(wèn)題上給出了一些建議,的朋友可以參考下
    2015-12-12
  • C++11中union的使用方法示例

    C++11中union的使用方法示例

    這篇文章主要給大家介紹了關(guān)于C++11中union的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • C語(yǔ)言實(shí)現(xiàn)牛頓迭代法解方程詳解

    C語(yǔ)言實(shí)現(xiàn)牛頓迭代法解方程詳解

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)牛頓迭代法解方程詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • C語(yǔ)言實(shí)現(xiàn)頁(yè)面置換 先進(jìn)先出算法(FIFO)

    C語(yǔ)言實(shí)現(xiàn)頁(yè)面置換 先進(jìn)先出算法(FIFO)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)頁(yè)面置換,先進(jìn)先出算法(FIFO),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • C++ 回調(diào)接口設(shè)計(jì)和二進(jìn)制兼容詳細(xì)

    C++ 回調(diào)接口設(shè)計(jì)和二進(jìn)制兼容詳細(xì)

    再開(kāi)發(fā)視頻編輯 SDK,SDK的回調(diào)接口設(shè)計(jì)成 C 風(fēng)格,結(jié)構(gòu)中放著一些函數(shù)指針,既然對(duì)外接口是 C++,為什么不直接使用 C++ 的虛函數(shù)?這篇文章便對(duì)這一問(wèn)題做個(gè)詳細(xì)介紹,需要的朋友可以參考一下
    2021-09-09
  • C++?的cout格式化輸出場(chǎng)景示例詳解

    C++?的cout格式化輸出場(chǎng)景示例詳解

    這篇文章主要為大家介紹了C++的cout格式化輸出場(chǎng)景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • C++17中std::byte的具體使用詳解

    C++17中std::byte的具體使用詳解

    這篇文章主要為大家詳細(xì)介紹了C++17中std::byte的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2023-11-11
  • C語(yǔ)言實(shí)現(xiàn)打磚塊游戲

    C語(yǔ)言實(shí)現(xiàn)打磚塊游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)打磚塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • c++中堆棧及創(chuàng)建對(duì)象示例代碼

    c++中堆棧及創(chuàng)建對(duì)象示例代碼

    這篇文章主要給大家詳細(xì)介紹了c++如何實(shí)現(xiàn)堆棧及創(chuàng)建對(duì)象,文中先進(jìn)行了簡(jiǎn)單的介紹,而后給出了詳細(xì)的示例代碼及注釋,相信對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • C語(yǔ)言實(shí)現(xiàn)停車場(chǎng)管理

    C語(yǔ)言實(shí)現(xiàn)停車場(chǎng)管理

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言課程設(shè)計(jì)之停車場(chǎng)管理問(wèn)題,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評(píng)論