[c]代码库
/*【问题】 将A、B、C、D、E、F这六个变量排成如图所示的三角形,这六个变量分别取[1,6]上的整数,且均不相同。求使三角形三条边上的变量之和相等的全部解。如图就是一个解。
程序引入变量a、b、c、d、e、f,并让它们分别顺序取1至6的证书,在它们互不相同的条件下,测试由它们排成的如图所示的三角形三条边上的变量之和是否相等,如相等即为一种满足要求的排列,把它们输出。当这些变量取尽所有的组合后,程序就可得到全部可能的解。
*/
void main()
{ int a,b,c,d,e,f;
for ( a=1; a<=6; a++ )
for ( b=1; b<=6; b++ )
{
if ( b==a ) continue;
for ( c=1; c<=6; c++ )
{
if ( c==a ) || ( c==b ) continue;
for ( d=1; d<=6; d++ )
{
if ( d==a ) || ( d==b ) || ( d==c ) continue;
for ( e=1; e<=6; e++ )
{
if ( e==a ) || ( e==b ) || ( e==c ) || ( e==d ) continue;
f=21- ( a+b+c+d+e );
if ( ( a+b+c==c+d+e ) ) && ( a+b+c==e+f+a ) )
{
printf ( “%6d,a );
printf ( “%4d%4d”,b,f );
printf ( “%2d%4d%4d”,c,d,e );
scanf ( “%*c” );
}
}
}
}
}
}