甲、乙、丙三位渔夫出海打渔,他们随船带了21个筐。 当晚返航时,他们发现有七个筐装满了鱼,还有七个筐装了半筐鱼,另外七只则是空的。 由于他们没有秤,只好通过目测认为7个满筐的重量是相等的,七个半筐的重量是相等的。
在不将鱼倒出来的前提下,怎样将鱼和筐平分为三份? 解答: 总数 = 7+7*0.5=10.5 每个人应得数量 = 10.5/3 = 3.5
解答分析:
/** * 甲、乙、丙三位渔夫出海打渔,他们随船带了21个筐。 * 当晚返航时,他们发现有七个筐装满了鱼,还有七个筐装了半筐鱼,另外七只则是空的。 * 由于他们没有秤,只好通过目测认为7个满筐的重量是相等的,七个半筐的重量是相等的。 * 在不将鱼倒出来的前提下,怎样将鱼和筐平分为三份? * * 解答: 总数 = 7+7*0.5=10.5 每个人应得数量 = 10.5/3 = 3.5 */ public class A { /** * @param args */ public static void main(String[] args) { for (int i = 0; i <= 2; i++) { for (int j = i; j <= 3; j++) { int k = 7 - i - j; if(k < j)continue; int ii = (int) ((3.5 - i) * 2); int jj = (int) ((3.5 - j) * 2); int kk_row = (int) ((3.5 - k) * 2); int kk_line = 7 - ii - jj; if (kk_row == kk_line && kk_line > 0) { print(i, ii, 7 - i - ii, j, jj, 7 - j - jj, k, kk_row, 7 - k - kk_row); } } } } public static void print(int i, int ii, int iii, int j, int jj, int jjj, int k, int kk, int kkk) { System.out.println("甲:" + i + " " + ii + " " + iii); System.out.println("乙:" + j + " " + jj + " " + jjj); System.out.println("丙:" + k + " " + kk + " " + kkk); System.out.println("----------"); } }
结果:
甲:1 5 1
乙:3 1 3
丙:3 1 3
--------------
甲:2 3 2
乙:2 3 2
丙:3 1 3
--------------