#include<stdio.h>
int num[10]={0,1,2,3,4,5,6,7,8,9};
int sum=0,sum9=0;
int g(int a,int b,int c){
return a*100+b*10+c;
}
void f(int x)
{
int i;
if(x==9)//产生一种排列后进行判断
{
int a=g(num[1],num[2],num[3]);//计算出三个数字
int b=g(num[4],num[5],num[6]);
int c=g(num[7],num[8],num[9]);
if(2*a==b&&3*a==c){//满足条件就输出
printf("%d %d %d\n",a,b,c);
}
}
for(i=x;i<=9;i++)
{
int t=num[i];
num[i]=num[x];
num[x]=t;
f(x+1);//递归
t=num[i];
num[i]=num[x];
num[x]=t;//回溯
}
}
int main()
{
f(1);
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交