解题思路:
注意事项:
参考代码:
#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语言代码)浏览:1519 |
C二级辅导-统计字符 (C语言代码)浏览:529 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:763 |
大神老白 (C语言代码)浏览:696 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:1115 |
WU-输入输出格式练习 (C++代码)浏览:1141 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:818 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:909 |
Tom数 (C语言代码)浏览:758 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:523 |