算法與數據結構之枚舉算法

1.枚舉算法的核心思想:

將所有問題的可能性一一列舉。

2.枚舉算法的應用:

《百錢找百雞》

問題:
公雞每隻5元,母雞每隻3元,小雞3只1元。用100元買100只雞

    問公雞,母雞,小雞各多少?

3.解決問題的核心思想:

以3種雞的個數爲枚舉對象(gj,mj,xj)

4.枚舉條件:
gj+mj+xj=100;[個數之和]

gj5+mj3+xj/3=100;[用錢之和]

xj%3==0;[小雞個數一定可以取餘3,因爲xj個數和購買花的錢必須爲整數]

5.代碼實現:

int main()
{
    //過程:分別枚舉公雞,母雞的個數範圍滿足條件進行輸出。
    int x, y, z;//分別表示公雞,母雞和小雞的個數
    for (x = 0; x <= 20; x++)//公雞個數範圍:0-20只,用100元除以每隻公雞的錢
    {
        for (y = 0; y <= 33; y++)//母雞個數範圍:0-33只,用100元除以每隻母雞的錢
        {
            z = 100 - x - y;//z表示小雞的個數
            if (z % 3 == 0 && x * 5 + y * 3 + z / 3 == 100)
                printf("公雞:%d,母雞:%d,小雞:%d\n", x, y, z);
        }
    }
    getch();
    return 0;
}

6.代碼實現效果圖:
圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章