1. 程式人生 > >for迴圈練習

for迴圈練習

 

羽毛球拍15元,球3元,水2元。200元每種至少一個,有多少種買法

解題思路

窮舉法
先確定條件的大致範圍,並在範圍內挨個驗證情況,
然後根據所需要的條件過濾出所需的條件。

羽毛球拍最多買13個,球最多買66個,水最多買100個

方法一

    int count = 0; //迴圈次數
            int num = 0;  //多少種買法
            for (int i = 1; i <= 13; i++)     //羽毛球拍最多可以買多少次
            {
                for (int j = 1; j <= 66
; j++) //球最多可以買多少次 { for (int k = 1; k <= 100; k++) //水最多可以買多少次 { count++; if (i * 15 + j * 3 + k * 2 == 200) //各個商品的價格相加登入總價格 { num++; Console.WriteLine(
"羽毛球拍:{0},球:{1},水:{2},共有{3}次買法", i, j, k, num); } } } }

方法二

比方法一效率高
先拿著錢和羽毛球拍的價格計算最多可以買多少個羽毛球拍,
然後拿著每個羽毛球拍的花的錢計算出球可以買多少個,
最後拿著羽毛球拍和球花的錢計算出水可以買多少瓶水。

         int money = 200;
            int f1m = maney / 15;   

            for
(int a = 1; a <= f1m; a++) { int f2m = (maney - (15 * a)) / 3; for (int b = 1; b <= f2m; b++) { int c = (maney - (15 * a + b * 3)) / 2; if (a * 15 + b * 3 + c * 2 == maney) { num++; Console.WriteLine("羽毛球拍{0},球{1},水{2},共有:{3}", a, b, c, num); } } } Console.ReadKey();