这里是我原来错误的语言,留下来做个纪念吧
int n;
printf("Please give a number show the bit:");
scanf("%d",&n);
int i = pow(10,n-1), j = pow(10,n)-1, k, c;
printf("%d %d \n",i,j);
for (k=i;k<=j;k++){
int sum = 0;
c=k;//用c变量暂时储存k,用于下面分解这个数的运算;这样就不会破坏for循环
// 我们现在要check一下这个数字是不是水仙花数,如果k=各个位数的平方的和就是,所以需要把位数分解出来
while(c>0){
c %= 10; //求余数
sum += pow(c,3);
// printf("%d %d ",c,sum);
}
if(sum==k){
printf("%d 位的水仙花数字有 %d \n",n,k);
}
}
return 0;
这里是修改过后的语言,大家可以给我一些建议么:
// question 2:水仙花数
int n;
printf("Please give a number show the bit:");
scanf("%d",&n);
int i = pow(10,n-1), j = pow(10,n)-1, k, c;
printf("%d %d \n",i,j);
for (k=i;k<=j;k++){
int sum = 0, t;
c=k;//用c变量暂时储存k,用于下面分解这个数的运算;这样就不会破坏for循环
// 我们现在要check一下这个数字是不是水仙花数,如果k=各个位数的平方的和就是,所以需要把位数分解出来
while(c>0){
t = c % 10;
c /= 10; //求余数
sum += pow(t,3); //把每一位上的数字加起来
// printf("%d %d ",c,sum);
}
if(sum==k){
printf("%d 位的水仙花数字有 %d \n",n,k);
}
}