今天做实验题 实现整数反转用了pow函数,把自己坑了,pow返回值是double型,而程序中的变量全是int型。
之后知道了不用pow函数的方法,特此记录。
思路: 先求出n的位数用i记录,之后再加权求和。
#include
#include
int main()
{
int i,n,m;
while(scanf("%d",&n)!=EOF)
{
i=1;m=0;
while(n/i)
i*=10;
while(i)
{
i/=10;
m+=i*(n%10);
n/=10;
}
printf("%d\n",m);
}
return 0;
}
之后贺神又优化出了只用一个循环的方法,很不错的方法
如下:
#include
#include
int main()
{
int n,m;
while(scanf("%d",&n)!=EOF)
{
m=0;
while(n)
{
m=m*10+n%10;
n/=10;
}
printf("%d\n",m);
}
return 0;
}