原题链接:C语言训练-阶乘和数*
解题思路:
abcde分别代表个十百千万
注意事项:
如何输出排序?原有数组处理后比较,再输出
参考代码:
public class m { public static void main(String args[]) { int Ar[]=new int[10]; int ar[]=new int[10]; int n=0; for (int a = 0; a < 10; a++) { int ja = 0; if (a != 0) { ja++; for (int i = 1; i <= a; i++) { ja *= i; } } for (int b = 0; b < 10; b++) { int jb = 0; if (a != 0 || b != 0) { jb++; for (int i = 1; i <= b; i++) { jb *= i; } } for (int c = 0; c < 10; c++) { int jc = 0; if (a != 0 || b != 0 || c != 0) { jc++; for (int i = 1; i <= c; i++) { jc *= i; } } for (int d = 0; d < 10; d++) { int jd = 0; if (a != 0 || b != 0 || c != 0 || d != 0) { jd++; for (int i = 1; i <= d; i++) { jd *= i; } } for (int e = 0; e < 10; e++) { int je = 1; for (int i = 1; i <= e; i++) { je *= i; } int jie = ja + jb + jc + jd + je; if (jie == (e + d * 10 + c * 100 + b * 1000 + a * 10000) && jie > 0) { ar[n]=jie; if(ja==0)jie*=10; if(jb==0)jie*=10; if(jc==0)jie*=10; if(jd==0)jie*=10; Ar[n]=jie; n++; } } } } } } for(int i=0;i<10;i++) { for(int ii=i;ii<10;ii++) { if(Ar[i]>Ar[ii]) { int ff=Ar[ii]; Ar[ii]=Ar[i]; Ar[i]=ff; int f=ar[ii]; ar[ii]=ar[i]; ar[i]=f; } } } for(int i=0;i<10;i++) { if(ar[i]!=0) System.out.print(ar[i]+" "); } } }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复