C语言:5户共井问题

Python012

C语言:5户共井问题,第1张

哈哈,我刚好有此代码,可能算法不是很好,但勉强能算出来:

int a,b,c,d,e,h,flag/*5家井长分别为a,b,c,d,e,井深为h*/

flag=0

for(h=7h<1000h++)

{

for(e=1e<h/6e++)

{

a=h-6*e

b=h-2*a

c=h-3*b

d=h-4*c

if(b==1||c<1||d<1)

{

continue

}

if(h==e+d*5)

{

flag=1

goto END

}

}

}

END:if(1==flag)

{

printf("五家的绳长分别为:\n")

printf("a=%d\n",a)

printf("b=%d\n",b)

printf("c=%d\n",c)

printf("d=%d\n",d)

printf("e=%d\n",e)

printf("井深:\n")

printf("h=%d\n",h)

}

#include<stdio.h>

void main()

{ int x,y,z,a,b/*甲x,乙y,丙z,丁a,戊b*/

/*依题意: 2x+y==3y+z==4z+a==5a+b==6b+x

故推知: x=y+z/2 (z是偶数)

y=z+a/3 (a是3的倍数)

z=a+b/4 (b是4的倍数)

a=b+x/5 (x是5的倍数)

*/

for(b=4b+=4)

for(x=5x+=5)

{ a=b+x/5

z=a+b/4

if(z%2)continue

if(a%3)continue

y=z+a/3

if(y+z/2<x)break

if(y+z/2==x){

printf("%d,%d,%d,%d,%d\n",x,y,z,a,b)return}

}

}