解题思路:

注意事项:

参考代码:

#include <stdio.h>


int main()

{

int a, b, c,d,e,arr[100000],l=-1,w=-1;

int temp1 = 0, temp2 = 0, temp3 = 0, temp4 = 0, temp5 = 0;

for (int i = 1; i <=99999; i++)

{

a = i / 10000;

b = i % 10000 / 1000;

c = i % 1000 / 100;

d = i % 100 / 10;

e = i % 10;


if (a != 0) //五位数

{

temp1 = 1;

temp2 = 1;

temp3 = 1;

temp4 = 1;

temp5 = 1;

for (int j = 1; j <= a; j++)

{

temp1 *= j;

}

for (int k = 1; k <= b; k++)

{

temp2 *= k;

}

for (int h = 1; h <= c; h++)

{

temp3 *= h;

}

for (int p = 1; p <= d; p++)

{

temp4 *= p;

}

for (int q = 1; q <= e; q++)

{

temp5 *= q;

}

}

else if (b != 0)  //四位数

{

temp2 = 1;

temp3 = 1;

temp4 = 1;

temp5 = 1;

int temp1 = 1, temp2 = 1, temp3 = 1, temp4 = 1, temp5 = 1;

for (int k = 1; k <= b; k++)

{

temp2 *= k;

}

for (int h = 1; h <= c; h++)

{

temp3 *= h;

}

for (int p = 1; p <= d; p++)

{

temp4 *= p;

}

for (int q = 1; q <= e; q++)

{

temp5 *= q;

}

}

else if (c != 0)  //三位数

{

temp3 = 1;

temp4 = 1;

temp5 = 1;

for (int h = 1; h <= c; h++)

{

temp3 *= h;

}

for (int p = 1; p <= d; p++)

{

temp4 *= p;

}

for (int q = 1; q <= e; q++)

{

temp5 *= q;

}

}

else if (d != 0)   //两位数

{

temp4 = 1;

temp5 = 1;

for (int p = 1; p <= d; p++)

{

temp4 *= p;

}

for (int q = 1; q <= e; q++)

{

temp5 *= q;

}

}

else             //一位数

{

temp5 = 1;

for (int q = 1; q <= e; q++)

{

temp5 *= q;

}

}


if (temp1 + temp2 + temp3 + temp4 + temp5 == i)

{

arr[++l] = i;

}

}




//按字典顺序输出


for (int z = 1; z <= 9; z++)

{

for (int i = 0; i <= l; i++)

{

a = arr[i] / 10000;

b = arr[i] % 10000 / 1000;

c = arr[i] % 1000 / 100;

d = arr[i] % 100 / 10;

e = arr[i] % 10;

if ((a == 0 && b == 0 && c == 0 && d == 0 && e == z) || (a == 0 && b == 0 && c == 0 && d == z) || (a == 0 && b == 0 && c == z) || (a == 0 && b == z) || (a == z))

{

++w;

if (w == 0)

{

printf("%d", arr[i]);

}

else

{

printf(" %d", arr[i]);

}

}

}

}

printf("\n");


system("pause");

return 0;

}


点赞(0)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论