//有30個人,其中有男人,女人,小孩,在一家餐廳消費了50元,其中每個男人各消費3元,每個女人各消費2元,每個小孩各消費1元,問男人,女人,小孩各有幾人? //方法一(窮舉法) int x = 0, y = 0, z = 0; //定義男人為:x; 定義女人為:y; 定義小孩為:z; for (x = 0; x <= 16; x++) //16*3=48,所以男的最多為16個 { for (y = 0; y <= 25; y++) //2*25=50,所以女的最多為25個 { for (z = 0; z <= 50; z++) //1*50=50,所以小孩最多為50個 { if (x + y + z == 30 && 3 * x + 2 * y + 1 * z == 50) { Console.WriteLine("男人 {0} 個\t女人 {1} 個\t小孩 {2} 個", x, y, z); } } } } //方法二 for (int i = 0; i <= 16; i++) // 50 / 3 所以男人最多為16個 { for (int j = 0; j <= (50 - 3 * i) / 2; j++) { if (i + j + (50 - 3 * i - 2 * j) == 30) //男人為i,女人為j,小孩為50-3*i-2*j, 總數為:i + j + (50-3*i-2*j) { Console.WriteLine("男人 {0} 個\t女人 {1} 個\t小孩 {2} 個", i, j, 50 - 3 * i - 2 * j); } } } Console.ReadKey();
文章評論