0x00 引言
爲獲取一個良好的算法思維,以及不再成爲一個腳本小子,爭取每天一道算法題,培養自己的邏輯思維,溫顧各類型語言語法知識。
題解只寫自己理解的解法,其他解法不再增加。題目與解析均在代碼裏面。
0x01 難度等級
簡單
0x02 代碼
package 簡單; import java.util.Scanner; /* * * 公元五世紀, * 我國古代數學家張丘建在《算經》一書中提出了“百雞問題”: * 雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何? 現要求你打印出所有花一百元買一百隻雞的方式。 * *示例1 輸入: 1 輸出: 0 25 75 4 18 78 8 11 81 12 4 84 * 5x+3y+1/3z=100 * 15x+9y+z=300 * z=100-x-y * * 15x+9y+100-x-y=14x+8y+100=300 * * 14x+8y=200 * 7x+4y=100 * x+y+z=100 *上面兩個式子化簡可得:7x+4y=100;0<=x<=14,0<=y<=25 *x>=0y=25 * * y>=0 x=14 * */ public class 百錢買百雞問題 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a=sc.nextInt(); int z = 0; for (int x = 0; x <= 14; x++) { for (int y = 0; y <= 25; y++) { if (7 * x + 4 * y == 100) { z = 100 - x - y; System.out.print(x + " " + y + " " + z); System.out.println(); } } } } }
0x03 算法思想
(1)主要是解一個三元一次方程,然後用雞的生命不能爲負值來作爲臨界點
(2)雙層for循環的使用