目录
从水仙花数到自然幂都可用简单c语言所编(主要是for循环 和while循环编写)
1自然幂
从水仙花数到自然幂都可用简单c语言所编(主要是for循环 和while循环编写)
#include<stdio.h>
int main(){
int a,n=1,b,c,i=0,m=0,d,e,f,g;
/*while(i<=999999){
m++;
// i=i*10+9;
i++;
*/
// printf("%d ",i);
for(n;n<=999999;n++){
a=n%10;
b=(n%100-a)/10;
c=(n%1000-a-b*10)/100;
d=(n%10000-a-b*10-c*100)/1000;
e=(n%100000-a-b*10-c*100-d*1000)/10000;
f=(n%1000000-a-b*10-c*100-d*1000-e*10000)/100000;
g=(n%10000000-a-b*10-c*100-d*1000-e*10000-f*100000)/1000000;
if(n<10)
if((a)==n)
printf("%d ",n);
if(n<100&&n!=1)
if((a*a+b*b)==n)
printf("%d ",n);
if(n<1000&&n!=1)
if((a*a*a+b*b*b+c*c*c)==n)
printf("%d ",n);
if(n<10000&&n!=1)
if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==n)
printf("%d ",n);
if(n<100000&&n!=1)
if(a*a*a*a*a+b*b*b*b*b+c*c*c*c*c+d*d*d*d*d+e*e*e*e*e==n)
printf("%d ",n);
if(n<1000000&&n!=1)
if(a*a*a*a*a*a+b*b*b*b*b*b+c*c*c*c*c*c+d*d*d*d*d*d+e*e*e*e*e*e+f*f*f*f*f*f==n)
printf("%d ",n);
if(n<10000000&&n!=1)
if(a*a*a*a*a*a*a+b*b*b*b*b*b*b+c*c*c*c*c*c*c+d*d*d*d*d*d*d+e*e*e*e*e*e*e+f*f*f*f*f*f*f+g*g*g*g*g*g*g==n)
printf("%d ",n);
}
return 0;
}
这种堆积而写的太费时间了
#include<stdio.h>
#include<math.h>
int main(){
int i,j,temp,sum=0;
printf("0 ");
for(i=1; i<=9;i++){
for(j=pow(10,i-1);j<pow(10,i);j++){
temp=j;
sum=0;
while(temp){
sum=sum +pow(temp%10,i);
temp =temp/10;
}
if( j==sum){
printf("%d ",j);
}
}
printf("\n");
}
return 0;
}
第一个for循环是定位数
第二个for循环是定范围
第三个while循环是计算
注意:1.if要在第二个for里面 2.temp是储存j的值 3.换行的位置