解题思路:
注意事项:
参考代码:
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
int a,b,c,d,e;
int a1,b1,c1,d1,e1;
int x[100]={0},y=0;
int m[100];
for(int i=1;i<100000;i++)
{
a=i%10;
b=(i/10)%10;
c=(i/100)%10;
d=(i/1000)%10;
e=(i/10000)%10;
if((a==0)&&(b==0)&&(c==0)&&(d==0)&&(e==0)) a1=0;
else a1=1;
if((b==0)&&(c==0)&&(d==0)&&(e==0)) b1=0;
else b1=1;
if((c==0)&&(d==0)&&(e==0)) c1=0;
else c1=1;
if((d==0)&&(e==0)) d1=0;
else d1=1;
if(e==0) e1=0;
else e1=1;
for(int j=1;j<=a;j++)
a1=a1*j;
for(int j=1;j<=b;j++)
b1=b1*j;
for(int j=1;j<=c;j++)
c1=c1*j;
for(int j=1;j<=d;j++)
d1=d1*j;
for(int j=1;j<=e;j++)
e1=e1*j;
if(i==a1+b1+c1+d1+e1)
{
x[y]=i;
y++;
}
}
/* for(int i=0;i<y;i++)
printf("%d ",x[i]);
printf("\n");*/
for(int i=0;i<y;i++)
{
a=x[i]%10;
b=(x[i]/10)%10;
c=(x[i]/100)%10;
d=(x[i]/1000)%10;
e=(x[i]/10000)%10;
if((b==0)&&(c==0)&&(d==0)&&(e==0))
m[i]=a;
else if((c==0)&&(d==0)&&(e==0))
m[i]=b;
else if((d==0)&&(e==0))
m[i]=c;
else if(e==0)
m[i]=d;
else if(e!=0)
m[i]=e;
}
/*for(int i=0;i<y;i++)
printf("%d ",m[i]);
printf("\n");*/
for(int i=0;i<y;i++)
{
for(int j=i+1;j<y;j++)
if(m[j]<m[i])
{
int t=x[i];
x[i]=x[j];
x[j]=t;
}
}
for(int i=0;i<y;i++)
printf("%d ",x[i]);
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复