平时可能你总会碰到一些非常经典的小函数,无论是算法还是计算效率上都值得细细品味,现在就来总结一下,或许多少年后,再来看我今天的随性之举,也是别有一番风味的。
1.统计一个十进制数二进制表达式中有多少个1
1 void fun1(int x) 2 { 3 int countx = 0; 4 while(x) 5 { 6 countx++; 7 x = x&(x-1); 8 } 9 return countx; 10 }
2.递归算法的简单应用--计算一个数的阶乘
1 int fun2(int x) 2 { 3 int i = 1; 4 if(x==1 || x<0) 5 { 6 return 1; 7 } 8 else 9 return x*=fun8(x-1); 10 }