最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

?? 前言

Wassup guys,我是Edison??

今天是C語言每日一練,第117天!

Let's get it!

1. 問題描述

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

2. 問題分析

如果用百錢只買公雞,最多可以買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 因此百錢買百雞問題就轉(zhuǎn)換成解不定方程組的問題了:

3. 算法思路

對于不定方程組,我們可以利用窮舉循環(huán)的方法來解決。 公雞范圍是 0~20,可用語句for(cock=0; cock<=20; cock++)實(shí)現(xiàn)。 錢的數(shù)量是固定的,要買的雞的數(shù)量也是固定的,母雞數(shù)量是受到公雞數(shù)量限制的。 同理,小雞數(shù)量受到公雞和母雞數(shù)量的限制,因此可以利用三層循環(huán)的嵌套來解決:第一層循環(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 次,算法的效率明顯太低了。 對于本題來說,公雞的數(shù)量確定后,小雞的數(shù)量就是固定為 100 ? c o c k ? h e n 100-cock-hen 100?cock?hen,無須進(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。 這樣我們利用兩重循環(huán)即可實(shí)現(xiàn)。

此算法只需嘗試 21 ? 34 = 714 21 * 34 = 714 21?34=714 次,實(shí)現(xiàn)時約束條件中限定了chicken必須能被3整除。 只有chicken能被3整除時才會繼續(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整除時需要進(jìn)行的算術(shù)計算和條件判斷,進(jìn)一步提高了算法的效率。

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

您可能感興趣的文章:

相關(guān)文章

  • C/C++使用socket實(shí)現(xiàn)判斷ip是否能連通

    C/C++使用socket實(shí)現(xiàn)判斷ip是否能連通

    這篇文章主要為大家詳細(xì)介紹了C/C++如何使用socket實(shí)現(xiàn)判斷ip是否能連通,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2023-07-07
  • C++實(shí)戰(zhàn)之二進(jìn)制數(shù)據(jù)處理與封裝

    C++實(shí)戰(zhàn)之二進(jìn)制數(shù)據(jù)處理與封裝

    在電腦上一切數(shù)據(jù)都是通過二進(jìn)制(0或1)進(jìn)行存儲的,通過多位二進(jìn)制數(shù)據(jù)可以進(jìn)而表示整形、浮點(diǎn)型、字符、字符串等各種基礎(chǔ)類型數(shù)據(jù)或者一些更復(fù)雜的數(shù)據(jù)格式。本文將為大家詳細(xì)講講二進(jìn)制數(shù)據(jù)處理與封裝,需要的可以參考一下
    2022-08-08
  • 詳解C/C++實(shí)現(xiàn)各種字符轉(zhuǎn)換方法合集

    詳解C/C++實(shí)現(xiàn)各種字符轉(zhuǎn)換方法合集

    這篇文章主要為大家詳細(xì)介紹了C/C++中實(shí)現(xiàn)各種字符轉(zhuǎn)換的方法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C++具有一定借鑒價值,需要的可以參考一下
    2022-09-09
  • c++11中regex正則表達(dá)式示例簡述

    c++11中regex正則表達(dá)式示例簡述

    這篇文章主要給大家介紹了關(guān)于c++11中regex正則表達(dá)式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用c++11具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 淺析C++元組tuple類型

    淺析C++元組tuple類型

    元組tuple是C++的一個模板,不同tuple類型的成員類型也不相同,但是一個tuple可以有任意數(shù)量的成員,今天通過本文給大家介紹C++元組tuple類型,感興趣的朋友一起看看吧
    2022-06-06
  • C++單例設(shè)計模式詳細(xì)講解

    C++單例設(shè)計模式詳細(xì)講解

    單例模式(Singleton Pattern)是最簡單的設(shè)計模式之一。這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式,這種模式涉及到一個單一的類,該類負(fù)責(zé)創(chuàng)建自己的對象,同時確保只有單個對象被創(chuàng)建
    2022-06-06
  • C語言數(shù)組實(shí)現(xiàn)打磚塊游戲

    C語言數(shù)組實(shí)現(xiàn)打磚塊游戲

    這篇文章主要為大家詳細(xì)介紹了C語言數(shù)組實(shí)現(xiàn)打磚塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++中的strcmp函數(shù)

    C++中的strcmp函數(shù)

    strcmp函數(shù)是C++標(biāo)準(zhǔn)庫中用于字符串比較的重要函數(shù),在C++中,字符串比較是一項常見的操作,用于判斷兩個字符串是否相等或者大小關(guān)系,本文介紹C++中的strcmp函數(shù),感興趣的朋友一起看看吧
    2024-03-03
  • static_cast,dynamic_cast,reinterpret_cast,const_cast的區(qū)別及用法詳解

    static_cast,dynamic_cast,reinterpret_cast,const_cast的區(qū)別及用法詳解

    以下是對static_cast,dynamic_cast,reinterpret_cast,const_cast的區(qū)別及用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
    2013-09-09
  • C++實(shí)現(xiàn)教職工信息管理系統(tǒng)

    C++實(shí)現(xiàn)教職工信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)教職工信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論

青龙| 长治市| 兴文县| 额敏县| 隆林| 建平县| 泰宁县| 肃北| 南汇区| 偃师市| 历史| 靖江市| 柳林县| 阿克陶县| 商洛市| 鄂州市| 赤峰市| 林芝县| 平顶山市| 鞍山市| 大港区| 会同县| 兖州市| 黑龙江省| 札达县| 麦盖提县| 泗阳县| 呼玛县| 波密县| 若羌县| 秦皇岛市| 浦北县| 石柱| 股票| 汽车| 攀枝花市| 大邑县| 崇仁县| 舟山市| 清流县| 华坪县|