如何取一个数的每一位?
这是一个函数判断水仙数的程序,数先对10取余可以得到个位数,再对10自除,再对10取余,又可以得到倒数第二位,利用这样的逻辑,可以知道该数每个数位上的数,但是先要用一个循环知道该数有多少个数位。
#include<stdio.h>
#include<math.h>
int dig_flower(int n)
{
int i=0,sum=0,t;
t=n; //先保存下来n值
while(n) //计算一个数有多少位
{i++;
n/=10;
}
n=t; //把值重新赋给n
while(n) //进行水仙花数计算
{sum+=pow(n%10,i);
n/=10;
}
return sum;
}
int main()
{
int n,m;
scanf("%d",&n);
m=dig_flower(n);
if(n==m)
printf("%d是水仙花数\n",n);
else
printf("%d不是水仙花数\n",n);
return 0;
}