□□□□×□=□□□□
mop上有人問這個如何編程實現
題目是123456789這9個數字組成一個等式,不可重復
□□□□×□=□□□□
我的想法就是枚舉
于是:
#include <iostream>

using namespace std;


long c[9]=
{1,1,1,1,1,1,1,1,1};
int check(int);

main()
{
for(c[0]=1;c[0]<10;c[0]++)
for(c[1]=1;c[1]<10;c[1]++)
if (check(1)) ;else
for(c[2]=1;c[2]<10;c[2]++)
if (check(2)) ; else
for(c[3]=1;c[3]<10;c[3]++)
if (check(3)) ;else
for(c[4]=1;c[4]<10;c[4]++)
if (check(4)) ;else
for(c[5]=1;c[5]<10;c[5]++)
if (check(5)) ;else
for(c[6]=1;c[6]<10;c[6]++)
if (check(6)) ;
else for(c[7]=1;c[7]<10;c[7]++)
if (check(7)) ;

else for(c[8]=1;c[8]<10;c[8]++)
{
if (check(8)) ;
else if((c[0]*1000+c[1]*100+c[2]*10+c[3])*c[4]==(c[5]*1000+c[6]*100+c[7]*10+c[8]))
cout<<c[0]<<c[1]<<c[2]<<c[3]<<"*"<<c[4]<<"="<<c[5]<<c[6]<<c[7]<<c[8]<<endl;
}


}


int check(int i)
{
int flag=0;
for (int ctr=0;ctr<i;ctr++)
if (ctr==i) ctr++;
else if(c[ctr]==c[i]) flag++;
return flag;

}
題目是123456789這9個數字組成一個等式,不可重復
□□□□×□=□□□□
我的想法就是枚舉
于是:


















































posted on 2006-02-19 20:15 Gohan 閱讀(234) 評論(0) 編輯 收藏 引用 所屬分類: Practise