看这个算式: ☆☆☆ + ☆☆☆ = ☆☆☆ 如果每个五角星代表 1 ~ 9 的不同的数字。 这个算式有多少种可能的正确填写方法?

View Code
#include<stdio.h>
#include<stdlib.h>
int x[10];
int ans;
bool Place(int k){
    int i=1;
    while(i<k){
        if(x[i]==x[k]) return false;
        i++;
    }
    return true;
}

bool IsOk(){
    return 100*(x[1]+x[4])+10*(x[2]+x[5])+(x[3]+x[6]) == 100*x[7]+10*x[8]+x[9];
}

void Solve(){
    int k=1;
    x[k]=0;
    while(k>0){
        do{
            x[k]++;
        }while(x[k]<10 && !Place(k));
        if(x[k]<10){
            if(k==9){
                if(IsOk()){
                    ans++;
                /*    int i;
                    for(i=1;i<10;i++){
                        printf("%d ",x[i]);
                    }
                    printf("\n");
                */
                }
            }
            else{
                k++;
                x[k]=0;
            }
        }
        else{
            k--;
        }
    }
}
int main(){
    ans=0;
    Solve();
    printf("%d\n",ans);
    return 0;
}

 

相关文章:

  • 2021-09-04
  • 2022-01-11
  • 2022-02-14
  • 2021-11-23
猜你喜欢
  • 2021-06-05
  • 2021-11-22
  • 2022-12-23
  • 2021-11-23
  • 2022-12-23
  • 2021-09-08
  • 2022-12-23
相关资源
相似解决方案