【算法入门】平分七筐鱼

//题目:

甲、乙、丙三位渔夫出海打渔,他们随船带了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();
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值