解题思路:





注意事项:





参考代码:

#include<stdio.h>

int a[10],b[10];

int t;

struct lee

{

int a,b,c;

}s[100],ss;

void dfs(int n)

{

int i,j,c,d,f;


if(n==10)

{

c=a[1]*1000+a[2]*100+a[3]*10+a[4];

d=a[5];

f=a[6]*1000+a[7]*100+a[8]*10+a[9];


if(c==d*f)

{

s[t].a=c;s[t].b=d;s[t].c=f;

t++;

}



d=a[5]*10+a[6];

f=a[7]*100+a[8]*10+a[9];

if(c==d*f)

{

s[t].a=c;s[t].b=d;s[t].c=f;

t++;

}


return ;

}


for(i=1;i<10;i++)

{

if(b[i]==0)

{

a[n]=i;

b[i]=1;

dfs(n+1);

b[i]=0;

}


}


}

int main()

{

int i,j,k,w;

dfs(1);

for(i=0;i<t;i++)

{

k=i;

for(j=i+1;j<t;j++)

if(s[k].b>s[j].b)

k=j;

ss=s[i];s[i]=s[k];s[k]=ss;

}


for(i=0;i<t;i++)

{

k=i;

for(j=i+1;j<t;j++)

if(s[k].a>s[j].a)

k=j;

ss=s[i];s[i]=s[k];s[k]=ss;

}



for(i=0;i<t;i++)

printf("%d = %d x %d\n",s[i].a,s[i].b,s[i].c);


return 0;

}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

一直很 6年前 回复TA
是x不是**;;哎呀
伤心