甲、乙、丙三位渔夫出海打鱼,他们随船带了21只箩筐。当晚返航时,他们发现有7筐装满了鱼,还有7筐只装了半筐鱼,另外7筐则是空的。由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量也是相等的。在不将鱼倒出来的前提下,怎么将鱼和筐平分为三份?

 

问题分析:

根据提议可知:每个人应分到7个箩筐,每人各3.5筐鱼。采用3*3数组来表示三个人分到的东西。

数组的每行每列元素之和都是7;

数组行: 满筐 + 半筐 = 3.5筐;

每个人所得满筐数不会超过3筐;

每个人至少有1个半筐;

 

 

 1 class Program
 2 {
 3     static void Main(string[] args)
 4     {
 5         int[,] fishermen = new int[33];
 6 
 7         for (int m = 1; m <= 3; m++)    //A
 8         {
 9             fishermen[00= m;
10             fishermen[01= (int)((3.5 - (double)m) / 0.5);
11             fishermen[02= 7 - fishermen[01- fishermen[00];
12 
13             for (int n = 1; n <= 3; n++)    //B
14             {
15                 if (n < m)
16                     continue;
17                 fishermen[10= n;
18                 fishermen[11= (int)((3.5 - (double)n) / 0.5);
19 
20                 if (fishermen[11< 0)
21                     break;
22 
23                 fishermen[12= 7 - fishermen[11- fishermen[10];
24 
25                 for (int j = 1; j <= 3; j++)    //C
26                 {
27                     if (j < n || j + n + m != 7)
28                         continue;
29 
30                     fishermen[20= j;
31                     fishermen[21= (int)((3.5 - (double)j) / 0.5);
32                     if (fishermen[21< 0)
33                         break;
34                     fishermen[22= 7 - fishermen[21- fishermen[20];
35 
36                     if (fishermen[21+ fishermen[11+ fishermen[01== 7 &&
37                         fishermen[20+ fishermen[10+ fishermen[00== 7)
38                     {
39                         for (int i = 0; i < 3; i++)
40                         {
41                             Console.WriteLine(i + "" + fishermen[i, 0+ " " + fishermen[i, 1+ " " + fishermen[i, 2]);
42                         }
43                         Console.WriteLine("----------------------------------");
44                         break;
45                     }
46                 }
47             }
48         }
49     }
50 }

 

 

运行结果:

0:1 5 1
1:3 1 3
2:3 1 3
----------------------------------
0:2 3 2
1:2 3 2
2:3 1 3
----------------------------------

posted on 2010-04-29 14:56  林博然  阅读(979)  评论(0编辑  收藏  举报