啊哈,算法!-----dfs2

来源:互联网 发布:手机号定位软件 编辑:程序博客网 时间:2024/04/29 07:57

从1~9九个组成形如abc+def=ghi的式子
输出式子的总数

代码实现

#include<iostream>#include<cstdio>using namespace std;int a[10],book[10],total=0;void dfs(int step){    int i;    if(step==10)    {        if(a[1]*100+a[2]*10+a[3]+           a[4]*100+a[5]*10+a[6]==           a[7]*100+a[8]*10+a[9]  ) //符合if语句,即题意的式子        {            total--;            printf("%d%d%d+ %d%d%d =%d%d%d\n",                   a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]);                   return ;        }    }        for(i=1;i<=9;i++)        {            if(book[i]==0)            {                a[step]=i;                book[i]=1;                dfs(step+1);//递归调用                book[i]=0;            }        }    return ;}int main(){    dfs(1);    printf("total=%d",total/2);//739+ 125125+739是一种情况除以2    return 0;}
0 0
原创粉丝点击