我住包子山

this->blog.MoveTo("blog.baozishan.in")

□□□□×□=□□□□

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;

  }

posted on 2006-02-19 20:15 Gohan 阅读(221) 评论(0)  编辑 收藏 引用 所属分类: Practise


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理