原题链接:C语言训练-阶乘和数*
解题思路:
注意事项:
参考代码:
int jie(int i){
int j,n=1;
if(i==0||i==1)return 1;////注意:0的阶乘是1,这个知识点忘了的话就无法输出40585了!
else{
for(j=1;j<=i;j++){
n*=j;
}
return n;
}
}
int main(){
int jie(int i);
int n1,k,sum1,t,temp;
//1;[10,20);[100,200);[1000,2000);[10000,20000)
for(n1=0;n1<5;n1++){
t=pow(10,n1);
for(k=t;k<2*t;k++){
temp=k;
sum1=0;
while(temp!=0){
sum1+=jie(temp%10);
temp=temp/10;
}
if(sum1==k){
printf("%d ",k);
}
}
}
//2;[20,30);[200,300);[2000,3000);[20000,30000)
for(n1=0;n1<5;n1++){
t=pow(10,n1);
for(k=2*t;k<3*t;k++){
temp=k;
sum1=0;
while(temp!=0){
sum1+=jie(temp%10);
temp=temp/10;
}
if(sum1==k){
printf("%d ",k);
}
}
}
//3;[30,40);[300,400);[3000,4000);[30000,40000)
for(n1=0;n1<5;n1++){
t=pow(10,n1);
for(k=t*3;k<4*t;k++){
temp=k;
sum1=0;
while(temp!=0){
sum1+=jie(temp%10);
temp=temp/10;
}
if(sum1==k){
printf("%d ",k);
}
}
}
//4;[40,50);[400,500);[4000,5000);[40000,50000)
for(n1=0;n1<5;n1++){
t=pow(10,n1);
for(k=t*4;k<t*5;k++){
temp=k;
sum1=0;
while(temp!=0){
sum1+=jie(temp%10);
temp=temp/10;
}
if(sum1==k){
printf("%d",k);
}
}
}
return 0;
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复