甲、乙、丙三位渔夫出海打渔,他们随船带了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
--------------