//题目:
甲、乙、丙三位渔夫出海打渔,他们随船带了21只箩筐,当晚返航时,他们发现
有7筐装满了鱼,还有7筐只装了半筐鱼,另外7筐则是空的。由于他们没有秤,
只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将
鱼倒出来的前提下,怎样将鱼和筐平分为三份?
#include "Stdio.h"
int a[3][3],count;
void main()
{
int i,j,k,m,n,flag;
printf("how to distribute\n");
for (i=0; i<=3; i++)
{
a[0][0]=i;
for (j=i; j<=7-i && j<=3; j++)
{
a[1][0]=j;
if ((a[2][0]=7-j-a[0][0])>3)
continue;
if (a[2][0]<a[1][0])
break;
for (k=1; k<=5; k+=2) //半框为奇数
{
a[0][1]=k;
for (m=1;m<7-k;m+=2) //半框为奇数
{
a[1][1]=m;
a[2][1]=7-k-m;
for (flag=1,n=0;flag&&n<3;n++)
if (a[n][0]+a[n][1]<7 && a[n][0]*2+a[n][1]==7) //满的加半框的为3.5框,合为7
a[n][2] = 7-a[n][0]-a[n][1]; //一人平分7框
else
flag=0;
if(flag)
{
printf("NO.%d: Full Semi Empty\n",++count);
for (n=0; n<3; n++)
printf("fisher%d:%d %d %d\n",n+1,a[n][0],a[n][1],a[n][2]);
}
}
}
}
}
getch();
}