求一算法。( )+( )=( ) ( )-( )=( ) ( )*( )=( )0 要求一个括号只填一个数字,将1--9填入括号,不能重复使用

时间:2022-11-05 15:07:37
如题:
( )+( )=( )    ( )-( )=( )    ( )*( )=( )0    要求一个括号只填一个数字,将1--9填入括号,不能重复使用一个数字
请给出算法。。谢谢!

32 个解决方案

#1


( a)+(b )=(c ) (d )-(e )=(f ) ( g)*( h)=( i)0

这样吗?你把空格去掉写紧凑些,这样怎么知道是几个式子?

#2


()+()=(),()-()=(),()*()=()0
就是上面的三个式子。求算法。在线等。今晚结帐。

#3


这是小学题目吧?如果要写出答案,容易的紧。写出算法却是麻烦事,我试试吧。

#4


显然最后一个只能2*5=10,4*5=20,6*5=30,8*5=40
然后就好做多了,循环找

#5


我要的是写出来。结果只有一组。1+7=8,9-6=3,4*5=20
我也知道用循环。请大家赐教!

#6


()+()=(),()-()=(),()*()=()0

有趣,一个不用动脑筋的方法,每个括号里的数从一循环到九,
先不考虑不重复,只保证满足加\减\乘
最后在筛选出不重复的排列!

18:00下班后我也试试写写!

#7


写循环倒是好写,也很容易求得解,不过写出来不是太好看,看看有没有别的方法。

#8


()+()=(),()-()=(),()*()=()
按顺序填空:
8 1 7 4 9 5 6 2 3
8 1 7 4 9 5 6 3 2
8 1 7 5 9 4 6 2 3
8 1 7 5 9 4 6 3 2
8 7 1 4 9 5 6 2 3
8 7 1 4 9 5 6 3 2
8 7 1 5 9 4 6 2 3
8 7 1 5 9 4 6 3 2
9 4 5 1 8 7 6 2 3
9 4 5 1 8 7 6 3 2
9 4 5 7 8 1 6 2 3
9 4 5 7 8 1 6 3 2
9 5 4 1 8 7 6 2 3
9 5 4 1 8 7 6 3 2
9 5 4 7 8 1 6 2 3
9 5 4 7 8 1 6 3 2

这是我求出来的解!

#9


上面的错了,应该是这样的
()=()+(),()=()-(),()=()*()
按顺序填空:
8 1 7 4 9 5 6 2 3
8 1 7 4 9 5 6 3 2
8 1 7 5 9 4 6 2 3
8 1 7 5 9 4 6 3 2
8 7 1 4 9 5 6 2 3
8 7 1 4 9 5 6 3 2
8 7 1 5 9 4 6 2 3
8 7 1 5 9 4 6 3 2
9 4 5 1 8 7 6 2 3
9 4 5 1 8 7 6 3 2
9 4 5 7 8 1 6 2 3
9 4 5 7 8 1 6 3 2
9 5 4 1 8 7 6 2 3
9 5 4 1 8 7 6 3 2
9 5 4 7 8 1 6 2 3
9 5 4 7 8 1 6 3 2

这是我求出来的解!

#10


实现起来简单,不过代码的算法很烂!

#11


请大家看准了题,最后面还有一个0呢。。
()+()=(),()-()=(),()*()=()0
谢谢 ylhyh(阳光)

#12


( )*( )=( )0 
这个例子当中一定包含5,而且前面的那个也只能是2,4,6,8当中的一个了    <1>
( )+( )=( )    
( )-( )=( )   
等价于两组 () + () = ()

也就是把剩余的6个数字分成两组, 每组都满足 a + b = c的方式             <2>
再次化简一下
如果是和5做乘法的是2或者6
那么乘的结果就是10或者30
9个数字当中,本来是5个奇数,4个偶数;在上述情况下,要去掉1个偶数2个奇数
那么剩余就是3个奇数和3个偶数
而这样的组合是形成不了两个a+b=c的,因为 
偶数+偶数=偶数
偶数+奇数=奇数
奇数+奇数=偶数
自己做一下推理,剩余3个奇数和3个偶数的时候是组合不成两组 a+b=c 的
所以和5配合的只有是 4 或者 8 了
那么,9个数组当中,就剩余2个偶数和4个奇数
因为9这个数字的特殊性, 它一定是 a + b = c表达式当中的c
现在剩余的情况就是
4×5=20  剩余的是 136789     有一组解  3+6=9 1+7=8  
8×5=40  剩余的是 123679      无解  2+7=9 3+6=9 剩余的无法表达

#13


人类的语言就是丰富、表达准确。把它表示为计算机语言就有些难看了。。。我放弃。除了循环我想不出别的招。

哪位提供一个逻辑推理的C库给我用用?

#14


看来我只能顶l

#15


超笨办法,循环,哈哈
()+()=(),()-()=(),()*()=()0

1 7 8 9 3 6 4 5 20
1 7 8 9 3 6 5 4 20
1 7 8 9 6 3 4 5 20
1 7 8 9 6 3 5 4 20
3 6 9 8 1 7 4 5 20
3 6 9 8 1 7 5 4 20
3 6 9 8 7 1 4 5 20
3 6 9 8 7 1 5 4 20
6 3 9 8 1 7 4 5 20
6 3 9 8 1 7 5 4 20
6 3 9 8 7 1 4 5 20
6 3 9 8 7 1 5 4 20
7 1 8 9 3 6 4 5 20
7 1 8 9 3 6 5 4 20
7 1 8 9 6 3 4 5 20
7 1 8 9 6 3 5 4 20

#16


happy__888([顾问团]寻开心) 

果然 够狠。。 唉 自叹不如 啊 ※

#17


实际上就这内两组解,当然1/7、3/6和4/5是可能互换的:
1 7 8 9 3 6 4 5 20
3 6 9 8 1 7 4 5 20

#18


9层循环和下面这个超笨的判断就够烦了:

if (v1!=v2 && v1!=v3 && v1!=v4 && v1!=v5 && v1!=v6 && v1!=v7 && v1!=v8 && v1!=v9 
  &&v2!=v1 && v2!=v3 && v2!=v4 && v2!=v5 && v2!=v6 && v2!=v7 && v2!=v8 && v2!=v9 
  &&v3!=v1 && v3!=v2 && v3!=v4 && v3!=v5 && v3!=v6 && v3!=v7 && v3!=v8 && v3!=v9 
  &&v4!=v1 && v4!=v2 && v4!=v3 && v4!=v5 && v4!=v6 && v4!=v7 && v4!=v8 && v4!=v9 
  &&v5!=v1 && v5!=v2 && v5!=v3 && v5!=v4 && v5!=v6 && v5!=v7 && v5!=v8 && v5!=v9 
  &&v6!=v1 && v6!=v2 && v6!=v3 && v6!=v4 && v6!=v5 && v6!=v7 && v6!=v8 && v6!=v9 
  &&v7!=v1 && v7!=v2 && v7!=v3 && v7!=v4 && v7!=v5 && v7!=v6 && v7!=v8 && v7!=v9 
  &&v8!=v1 && v8!=v2 && v8!=v3 && v8!=v4 && v8!=v5 && v8!=v6 && v8!=v7 && v8!=v9 
  &&v9!=v1 && v9!=v2 && v9!=v3 && v9!=v4 && v9!=v5 && v9!=v6 && v9!=v7 && v9!=v8 
  &&v1+v2==v3 && v4-v5==v6 && v7*v8==v9*10)
{
cout<<v1<<" "<<v2<<" "<<v3<<" "<<v4<<" "<<v5<<" "<<v6<<" "<<v7<<" "<<v8<<" "<<v9<<0<<endl;

}

#19


高手们肯定还有好方法……递归?……

#20


#include <stdio.h>
/*
()+()=(),()-()=(),()*()=()0
*/
int main(void)
{
int a,b,c,   d,e,f,  g,h,i;
for(a=1;a<=9;a++){
for(b=1;b<=9;b++){
if(b==a)continue;
for(c=1;c<=9;c++){
if(c==a||c==b)continue;
for(d=1;d<=9;d++){
if(d==a||d==b||d==c)continue;
for(e=1;e<=9;e++){
if(e==a||e==b||e==c||e==d)continue;
for(f=1;f<=9;f++){
if(f==a||f==b||f==c||f==d||f==e)continue;
for(g=1;g<=9;g++){
if(g==a||g==b||g==c||g==d||g==e||g==f)continue;
for(h=1;h<=9;h++){
if(h==a||h==b||h==c||h==d||h==e||h==f||h==g)continue;
for(i=1;i<=9;i++){
if(i==a||i==b||i==c||i==d||i==e||i==f||i==g||i==h)continue;
if( (a+b)==c &&
(d-e)==f &&
g*h  ==i*10 )
printf("%d+%d=%d,%d-%d=%d,%d*%d=%d0\n",a,b,c,d,e,f,g,h,i);
}//i end
}
}//g end
}
}//e end
}
}
}//b end
}//a end
return 0;
}

其答案是:
1+7=8,9-3=6,4*5=20
1+7=8,9-3=6,5*4=20
1+7=8,9-6=3,4*5=20
1+7=8,9-6=3,5*4=20
3+6=9,8-1=7,4*5=20
3+6=9,8-1=7,5*4=20
3+6=9,8-7=1,4*5=20
3+6=9,8-7=1,5*4=20
6+3=9,8-1=7,4*5=20
6+3=9,8-1=7,5*4=20
6+3=9,8-7=1,4*5=20
6+3=9,8-7=1,5*4=20
7+1=8,9-3=6,4*5=20
7+1=8,9-3=6,5*4=20
7+1=8,9-6=3,4*5=20
7+1=8,9-6=3,5*4=20

#21


缩进太多,版面乱了,重发个
#include <stdio.h>
/*
()+()=(),()-()=(),()*()=()0
*/
int main(void)
{
int a,b,c,   d,e,f,  g,h,i;
for(a=1;a<=9;a++){
for(b=1;b<=9;b++){
if(b==a)continue;
for(c=1;c<=9;c++){
if(c==a||c==b)continue;
for(d=1;d<=9;d++){
if(d==a||d==b||d==c)continue;
for(e=1;e<=9;e++){
if(e==a||e==b||e==c||e==d)continue;
for(f=1;f<=9;f++){
if(f==a||f==b||f==c||f==d||f==e)continue;
for(g=1;g<=9;g++){
if(g==a||g==b||g==c||g==d||g==e||g==f)continue;
for(h=1;h<=9;h++){
if(h==a||h==b||h==c||h==d||h==e||h==f||h==g)continue;
for(i=1;i<=9;i++){
if(i==a||i==b||i==c||i==d||i==e||i==f||i==g||i==h)continue;
if( (a+b)==c &&
(d-e)==f &&
g*h  ==i*10 )
printf("%d+%d=%d,%d-%d=%d,%d*%d=%d0\n",a,b,c,d,e,f,g,h,i);
}//i end
}
}//g end
}
}//e end
}
}
}//b end
}//a end
return 0;
}

#22


正如happy__888([顾问团]寻开心) 所推的,+转换为-,只有一组解

#23


#24


也来凑个热闹,我这个是超笨办法,效率不高,勿见笑^_^

main()
{
 int a,b,c,d,e,f,g,h,i;
 for (a=1;a<10;a++)
    for (b=1;b<10;b++)
        {if (b!=a)
         for (c=1;c<10;c++)
            {if ((c!=a)&&(c!=b))
             for (d=1;d<10;d++)
                {if ((d!=a)&&(d!=b)&&(d!=c))
                 for (e=1;e<10;e++)
                    {if ((e!=a)&&(e!=b)&&(e!=c)&&(e!=d))
                     for (f=1;f<10;f++)
                       {if ((f!=a)&&(f!=b)&&(f!=c)&&(f!=d)&&(f!=e))
                        for (g=1;g<10;g++)
                            {if ((g!=a)&&(g!=b)&&(g!=c)&&(g!=d)&&(g!=e)&&(g!=f))
                             for (h=1;h<10;h++)
                                {if ((h!=a)&&(h!=b)&&(h!=c)&&(h!=d)&&(h!=e)&&(h!=f)&&(h!=g))
                                 for (i=1;i<10;i++)
                                    {
                                     if ((i!=a)&&(i!=b)&&(i!=c)&&(i!=d)&&(i!=e)&&(i!=f)&&(i!=g)&&(i!=h))
                                      if ((a+b==c)&&(d-e==f)&&(g*h==i*10))
                    printf ("%d+%d=%d,%d-%d=%d,%d*%d=%d0\n",a,b,c,d,e,f,g,h,i);
                                      else continue;
                                    }
                                }
                            }
                       }
                    }
                }
            }
        }

}

#25


答案是:
1+7=8,9-3=6,5*4=20
1+7=8,9-6=3,4*5=20
1+7=8,9-6=3,5*4=20
3+6=9,8-1=7,4*5=20
3+6=9,8-1=7,5*4=20
3+6=9,8-7=1,4*5=20
3+6=9,8-7=1,5*4=20
6+3=9,8-1=7,4*5=20
6+3=9,8-1=7,5*4=20
6+3=9,8-7=1,4*5=20
6+3=9,8-7=1,5*4=20
7+1=8,9-3=6,4*5=20
7+1=8,9-3=6,5*4=20
7+1=8,9-6=3,4*5=20
7+1=8,9-6=3,5*4=20

#26


avalonBBS(啊哇啦) 代码可以简化成下面的,你觉得呢???

void main()
{int a,b,c,d,e,f,g=5,h,i;

   for(a=1;a<=9;a++)
   {
     if(a==g) continue;
     for(b=1;b<=9;b++)
     {
       if(b==a||b==g) continue;
       c=a+b;
       if(c==g) continue;
       for(d=2;d<=9;d++)
       {
         if(d==a||d==b||d==c||d==g) continue;
         for(e=d-1;e>=1;e--)
         {
           if(e==a||e==b||e==c||e==g) continue;
           f=d-e;
           if(f==a||f==b||f==c||f==e||f==g) continue;
           for(h=2;h<9;h+=2)
           {
             if(h==a||h==b||h==c||h==d||h==e||h==f||h==g) continue;
             i=h/2;
           }
         }
       }
     }
   }
   printf(...........);
}

#27


怎么会去求这种题呢.

#28


交给别人去解决

#29


感谢诸位。。同于有事,昨晚未结帐。今早想起来了。。
由于分不是很多。所以只能给这些了。。再次感谢大家给我提供的这些方法。

#30


555555

#31


帮我找一个求从1到100的阶乘

#32


我看不懂,请手赐教,再请问有没有C语言的题目。

#1


( a)+(b )=(c ) (d )-(e )=(f ) ( g)*( h)=( i)0

这样吗?你把空格去掉写紧凑些,这样怎么知道是几个式子?

#2


()+()=(),()-()=(),()*()=()0
就是上面的三个式子。求算法。在线等。今晚结帐。

#3


这是小学题目吧?如果要写出答案,容易的紧。写出算法却是麻烦事,我试试吧。

#4


显然最后一个只能2*5=10,4*5=20,6*5=30,8*5=40
然后就好做多了,循环找

#5


我要的是写出来。结果只有一组。1+7=8,9-6=3,4*5=20
我也知道用循环。请大家赐教!

#6


()+()=(),()-()=(),()*()=()0

有趣,一个不用动脑筋的方法,每个括号里的数从一循环到九,
先不考虑不重复,只保证满足加\减\乘
最后在筛选出不重复的排列!

18:00下班后我也试试写写!

#7


写循环倒是好写,也很容易求得解,不过写出来不是太好看,看看有没有别的方法。

#8


()+()=(),()-()=(),()*()=()
按顺序填空:
8 1 7 4 9 5 6 2 3
8 1 7 4 9 5 6 3 2
8 1 7 5 9 4 6 2 3
8 1 7 5 9 4 6 3 2
8 7 1 4 9 5 6 2 3
8 7 1 4 9 5 6 3 2
8 7 1 5 9 4 6 2 3
8 7 1 5 9 4 6 3 2
9 4 5 1 8 7 6 2 3
9 4 5 1 8 7 6 3 2
9 4 5 7 8 1 6 2 3
9 4 5 7 8 1 6 3 2
9 5 4 1 8 7 6 2 3
9 5 4 1 8 7 6 3 2
9 5 4 7 8 1 6 2 3
9 5 4 7 8 1 6 3 2

这是我求出来的解!

#9


上面的错了,应该是这样的
()=()+(),()=()-(),()=()*()
按顺序填空:
8 1 7 4 9 5 6 2 3
8 1 7 4 9 5 6 3 2
8 1 7 5 9 4 6 2 3
8 1 7 5 9 4 6 3 2
8 7 1 4 9 5 6 2 3
8 7 1 4 9 5 6 3 2
8 7 1 5 9 4 6 2 3
8 7 1 5 9 4 6 3 2
9 4 5 1 8 7 6 2 3
9 4 5 1 8 7 6 3 2
9 4 5 7 8 1 6 2 3
9 4 5 7 8 1 6 3 2
9 5 4 1 8 7 6 2 3
9 5 4 1 8 7 6 3 2
9 5 4 7 8 1 6 2 3
9 5 4 7 8 1 6 3 2

这是我求出来的解!

#10


实现起来简单,不过代码的算法很烂!

#11


请大家看准了题,最后面还有一个0呢。。
()+()=(),()-()=(),()*()=()0
谢谢 ylhyh(阳光)

#12


( )*( )=( )0 
这个例子当中一定包含5,而且前面的那个也只能是2,4,6,8当中的一个了    <1>
( )+( )=( )    
( )-( )=( )   
等价于两组 () + () = ()

也就是把剩余的6个数字分成两组, 每组都满足 a + b = c的方式             <2>
再次化简一下
如果是和5做乘法的是2或者6
那么乘的结果就是10或者30
9个数字当中,本来是5个奇数,4个偶数;在上述情况下,要去掉1个偶数2个奇数
那么剩余就是3个奇数和3个偶数
而这样的组合是形成不了两个a+b=c的,因为 
偶数+偶数=偶数
偶数+奇数=奇数
奇数+奇数=偶数
自己做一下推理,剩余3个奇数和3个偶数的时候是组合不成两组 a+b=c 的
所以和5配合的只有是 4 或者 8 了
那么,9个数组当中,就剩余2个偶数和4个奇数
因为9这个数字的特殊性, 它一定是 a + b = c表达式当中的c
现在剩余的情况就是
4×5=20  剩余的是 136789     有一组解  3+6=9 1+7=8  
8×5=40  剩余的是 123679      无解  2+7=9 3+6=9 剩余的无法表达

#13


人类的语言就是丰富、表达准确。把它表示为计算机语言就有些难看了。。。我放弃。除了循环我想不出别的招。

哪位提供一个逻辑推理的C库给我用用?

#14


看来我只能顶l

#15


超笨办法,循环,哈哈
()+()=(),()-()=(),()*()=()0

1 7 8 9 3 6 4 5 20
1 7 8 9 3 6 5 4 20
1 7 8 9 6 3 4 5 20
1 7 8 9 6 3 5 4 20
3 6 9 8 1 7 4 5 20
3 6 9 8 1 7 5 4 20
3 6 9 8 7 1 4 5 20
3 6 9 8 7 1 5 4 20
6 3 9 8 1 7 4 5 20
6 3 9 8 1 7 5 4 20
6 3 9 8 7 1 4 5 20
6 3 9 8 7 1 5 4 20
7 1 8 9 3 6 4 5 20
7 1 8 9 3 6 5 4 20
7 1 8 9 6 3 4 5 20
7 1 8 9 6 3 5 4 20

#16


happy__888([顾问团]寻开心) 

果然 够狠。。 唉 自叹不如 啊 ※

#17


实际上就这内两组解,当然1/7、3/6和4/5是可能互换的:
1 7 8 9 3 6 4 5 20
3 6 9 8 1 7 4 5 20

#18


9层循环和下面这个超笨的判断就够烦了:

if (v1!=v2 && v1!=v3 && v1!=v4 && v1!=v5 && v1!=v6 && v1!=v7 && v1!=v8 && v1!=v9 
  &&v2!=v1 && v2!=v3 && v2!=v4 && v2!=v5 && v2!=v6 && v2!=v7 && v2!=v8 && v2!=v9 
  &&v3!=v1 && v3!=v2 && v3!=v4 && v3!=v5 && v3!=v6 && v3!=v7 && v3!=v8 && v3!=v9 
  &&v4!=v1 && v4!=v2 && v4!=v3 && v4!=v5 && v4!=v6 && v4!=v7 && v4!=v8 && v4!=v9 
  &&v5!=v1 && v5!=v2 && v5!=v3 && v5!=v4 && v5!=v6 && v5!=v7 && v5!=v8 && v5!=v9 
  &&v6!=v1 && v6!=v2 && v6!=v3 && v6!=v4 && v6!=v5 && v6!=v7 && v6!=v8 && v6!=v9 
  &&v7!=v1 && v7!=v2 && v7!=v3 && v7!=v4 && v7!=v5 && v7!=v6 && v7!=v8 && v7!=v9 
  &&v8!=v1 && v8!=v2 && v8!=v3 && v8!=v4 && v8!=v5 && v8!=v6 && v8!=v7 && v8!=v9 
  &&v9!=v1 && v9!=v2 && v9!=v3 && v9!=v4 && v9!=v5 && v9!=v6 && v9!=v7 && v9!=v8 
  &&v1+v2==v3 && v4-v5==v6 && v7*v8==v9*10)
{
cout<<v1<<" "<<v2<<" "<<v3<<" "<<v4<<" "<<v5<<" "<<v6<<" "<<v7<<" "<<v8<<" "<<v9<<0<<endl;

}

#19


高手们肯定还有好方法……递归?……

#20


#include <stdio.h>
/*
()+()=(),()-()=(),()*()=()0
*/
int main(void)
{
int a,b,c,   d,e,f,  g,h,i;
for(a=1;a<=9;a++){
for(b=1;b<=9;b++){
if(b==a)continue;
for(c=1;c<=9;c++){
if(c==a||c==b)continue;
for(d=1;d<=9;d++){
if(d==a||d==b||d==c)continue;
for(e=1;e<=9;e++){
if(e==a||e==b||e==c||e==d)continue;
for(f=1;f<=9;f++){
if(f==a||f==b||f==c||f==d||f==e)continue;
for(g=1;g<=9;g++){
if(g==a||g==b||g==c||g==d||g==e||g==f)continue;
for(h=1;h<=9;h++){
if(h==a||h==b||h==c||h==d||h==e||h==f||h==g)continue;
for(i=1;i<=9;i++){
if(i==a||i==b||i==c||i==d||i==e||i==f||i==g||i==h)continue;
if( (a+b)==c &&
(d-e)==f &&
g*h  ==i*10 )
printf("%d+%d=%d,%d-%d=%d,%d*%d=%d0\n",a,b,c,d,e,f,g,h,i);
}//i end
}
}//g end
}
}//e end
}
}
}//b end
}//a end
return 0;
}

其答案是:
1+7=8,9-3=6,4*5=20
1+7=8,9-3=6,5*4=20
1+7=8,9-6=3,4*5=20
1+7=8,9-6=3,5*4=20
3+6=9,8-1=7,4*5=20
3+6=9,8-1=7,5*4=20
3+6=9,8-7=1,4*5=20
3+6=9,8-7=1,5*4=20
6+3=9,8-1=7,4*5=20
6+3=9,8-1=7,5*4=20
6+3=9,8-7=1,4*5=20
6+3=9,8-7=1,5*4=20
7+1=8,9-3=6,4*5=20
7+1=8,9-3=6,5*4=20
7+1=8,9-6=3,4*5=20
7+1=8,9-6=3,5*4=20

#21


缩进太多,版面乱了,重发个
#include <stdio.h>
/*
()+()=(),()-()=(),()*()=()0
*/
int main(void)
{
int a,b,c,   d,e,f,  g,h,i;
for(a=1;a<=9;a++){
for(b=1;b<=9;b++){
if(b==a)continue;
for(c=1;c<=9;c++){
if(c==a||c==b)continue;
for(d=1;d<=9;d++){
if(d==a||d==b||d==c)continue;
for(e=1;e<=9;e++){
if(e==a||e==b||e==c||e==d)continue;
for(f=1;f<=9;f++){
if(f==a||f==b||f==c||f==d||f==e)continue;
for(g=1;g<=9;g++){
if(g==a||g==b||g==c||g==d||g==e||g==f)continue;
for(h=1;h<=9;h++){
if(h==a||h==b||h==c||h==d||h==e||h==f||h==g)continue;
for(i=1;i<=9;i++){
if(i==a||i==b||i==c||i==d||i==e||i==f||i==g||i==h)continue;
if( (a+b)==c &&
(d-e)==f &&
g*h  ==i*10 )
printf("%d+%d=%d,%d-%d=%d,%d*%d=%d0\n",a,b,c,d,e,f,g,h,i);
}//i end
}
}//g end
}
}//e end
}
}
}//b end
}//a end
return 0;
}

#22


正如happy__888([顾问团]寻开心) 所推的,+转换为-,只有一组解

#23


#24


也来凑个热闹,我这个是超笨办法,效率不高,勿见笑^_^

main()
{
 int a,b,c,d,e,f,g,h,i;
 for (a=1;a<10;a++)
    for (b=1;b<10;b++)
        {if (b!=a)
         for (c=1;c<10;c++)
            {if ((c!=a)&&(c!=b))
             for (d=1;d<10;d++)
                {if ((d!=a)&&(d!=b)&&(d!=c))
                 for (e=1;e<10;e++)
                    {if ((e!=a)&&(e!=b)&&(e!=c)&&(e!=d))
                     for (f=1;f<10;f++)
                       {if ((f!=a)&&(f!=b)&&(f!=c)&&(f!=d)&&(f!=e))
                        for (g=1;g<10;g++)
                            {if ((g!=a)&&(g!=b)&&(g!=c)&&(g!=d)&&(g!=e)&&(g!=f))
                             for (h=1;h<10;h++)
                                {if ((h!=a)&&(h!=b)&&(h!=c)&&(h!=d)&&(h!=e)&&(h!=f)&&(h!=g))
                                 for (i=1;i<10;i++)
                                    {
                                     if ((i!=a)&&(i!=b)&&(i!=c)&&(i!=d)&&(i!=e)&&(i!=f)&&(i!=g)&&(i!=h))
                                      if ((a+b==c)&&(d-e==f)&&(g*h==i*10))
                    printf ("%d+%d=%d,%d-%d=%d,%d*%d=%d0\n",a,b,c,d,e,f,g,h,i);
                                      else continue;
                                    }
                                }
                            }
                       }
                    }
                }
            }
        }

}

#25


答案是:
1+7=8,9-3=6,5*4=20
1+7=8,9-6=3,4*5=20
1+7=8,9-6=3,5*4=20
3+6=9,8-1=7,4*5=20
3+6=9,8-1=7,5*4=20
3+6=9,8-7=1,4*5=20
3+6=9,8-7=1,5*4=20
6+3=9,8-1=7,4*5=20
6+3=9,8-1=7,5*4=20
6+3=9,8-7=1,4*5=20
6+3=9,8-7=1,5*4=20
7+1=8,9-3=6,4*5=20
7+1=8,9-3=6,5*4=20
7+1=8,9-6=3,4*5=20
7+1=8,9-6=3,5*4=20

#26


avalonBBS(啊哇啦) 代码可以简化成下面的,你觉得呢???

void main()
{int a,b,c,d,e,f,g=5,h,i;

   for(a=1;a<=9;a++)
   {
     if(a==g) continue;
     for(b=1;b<=9;b++)
     {
       if(b==a||b==g) continue;
       c=a+b;
       if(c==g) continue;
       for(d=2;d<=9;d++)
       {
         if(d==a||d==b||d==c||d==g) continue;
         for(e=d-1;e>=1;e--)
         {
           if(e==a||e==b||e==c||e==g) continue;
           f=d-e;
           if(f==a||f==b||f==c||f==e||f==g) continue;
           for(h=2;h<9;h+=2)
           {
             if(h==a||h==b||h==c||h==d||h==e||h==f||h==g) continue;
             i=h/2;
           }
         }
       }
     }
   }
   printf(...........);
}

#27


怎么会去求这种题呢.

#28


交给别人去解决

#29


感谢诸位。。同于有事,昨晚未结帐。今早想起来了。。
由于分不是很多。所以只能给这些了。。再次感谢大家给我提供的这些方法。

#30


555555

#31


帮我找一个求从1到100的阶乘

#32


我看不懂,请手赐教,再请问有没有C语言的题目。