反转一个整数
原型:unsigned Reverse(unsigned int n) ;
我的代码:用了浮点函数log10, pow不仅效率低,还会损失精度。
1 unsigned Reverse(unsigned n)
2 {
3 int digits = (int)log10((double)n) ;
4
5 int r = 0 ;
6 while(n)
7 {
8 int t = n % 10 ;
9 r += t * pow((double)10, digits--) ;
10 n /= 10 ;
11 }
12 return r ;
13 }
2 {
3 int digits = (int)log10((double)n) ;
4
5 int r = 0 ;
6 while(n)
7 {
8 int t = n % 10 ;
9 r += t * pow((double)10, digits--) ;
10 n /= 10 ;
11 }
12 return r ;
13 }
星星的代码:
1 unsigned Reverse( unsigned a )
2 {
3 unsigned b = 0;
4 for( ; a; a/=10 )
5 {
6 b = b*10 + a%10;
7 }
8 return b;
9 }
2 {
3 unsigned b = 0;
4 for( ; a; a/=10 )
5 {
6 b = b*10 + a%10;
7 }
8 return b;
9 }
看出来什么叫差距了吧,无论从简洁性还是效率上,都比我的好。学习中。。。
作者:zdd
出处:http://www.cnblogs.com/graphics/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.