数学算式搜索问题

#include "iostream.h"
#include "string.h"
#include "math.h"
float a[9];
bool repeat(int i)
{
    for(int k=0;k<i;k++)
        if(a[k]==a[i])
            return 1;
    return 0;
}
void dfs(int n)
{
   if (n==9)
   {   if(a[0]/(a[1]*10+a[2])+a[3]/(a[4]*10+a[5])==a[6]/(a[7]*10+a[8]))
   {for (int i=0;i<9;i++)
            cout<<a[i]<<'\t';
   cout<<endl;}
   return ;
   }
   for (int i=1;i<10;i++)
   {
       a[n]=i;
       if (!repeat(n))
           dfs(n+1);
   }

}
void main()
{
   memset(a,0,sizeof(a));
   dfs(0);
}

 

posted on 2017-03-09 09:47  ewitt  阅读(123)  评论(0编辑  收藏  举报

导航