91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用C語言處理算經中的百錢百雞問題

發布時間:2022-02-25 09:27:35 來源:億速云 閱讀:135 作者:小新 欄目:開發技術

這篇文章主要介紹了如何使用C語言處理算經中的百錢百雞問題,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1. 問題描述

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

2. 問題分析

如果用百錢只買公雞,最多可以買20只,但題目要求買一百只,所以公雞數量在 0~20 之間。  同理,母雞數量在 0~33 之間。  在此把公雞、母雞和小雞的數量分別設為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  因此百錢買百雞問題就轉換成解不定方程組的問題了:

如何使用C語言處理算經中的百錢百雞問題

3. 算法思路

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

如何使用C語言處理算經中的百錢百雞問題

4. 代碼實現

????

#include <stdio.h>

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

    for (cock = 0; cock <= 20; cock++) //外層循環控制公雞數量取值范圍0~20
    {
        for (hen = 0; hen <= 33; hen++) //中層循環控制母雞數量取值范圍0~30
        {
            for (chicken = 0; chicken <= 100; chicken++) //內層循環控制小雞數量取值范圍0~100
            {
                //在內外層循環條件控制下小雞數量的取值限制用難一組解的合理性
                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;
}

運行結果????

如何使用C語言處理算經中的百錢百雞問題

5. 算法優化

以上算法需要窮舉嘗試                                        21                            ?                            34                            ?                            101                            =                            72114                                  21 *34*101=72114                     21?34?101=72114 次,算法的效率明顯太低了。  對于本題來說,公雞的數量確定后,小雞的數量就是固定為                                    100                         ?                         c                         o                         c                         k                         ?                         h                         e                         n                              100-cock-hen                  100?cock?hen,無須進行窮舉了。  此時約束條件就只有一個:                                   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。  這樣我們利用兩重循環即可實現。

如何使用C語言處理算經中的百錢百雞問題

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

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用C語言處理算經中的百錢百雞問題”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

株洲市| 哈巴河县| 宝鸡市| 许昌县| 金堂县| 南乐县| 三明市| 吴桥县| 五家渠市| 获嘉县| 汤原县| 土默特左旗| 微博| 海宁市| 白沙| 宜丰县| 防城港市| 东城区| 北川| 巴彦淖尔市| 芦山县| 得荣县| 铜鼓县| 南漳县| 外汇| 额济纳旗| 漳平市| 和龙市| 三门县| 虎林市| 阳新县| 扶绥县| 云梦县| 海宁市| 美姑县| 大丰市| 上饶县| 博湖县| 同江市| 武宣县| 镇远县|