1。运用了除法,取余方式递推出结构
2。运用右移符(在祝辞)运算
3。利用算术与(和)运算
三种方法效率越来越高,减少成本
<代码> # includeint Number1 (int n) { int k; int数=0; 而(n比;0) { k=n % 2; n/=2; 如果(1==k) { 数+ +; } } 返回计数; } int科学(int n) { int数=0; 而(n> 0) { 如果(n,1)==1) { 数+ +; } n=n祝辞祝辞1; } 返回计数; } int Number3 (int n) { int数=0; 而(n) { n=n& (n - 1); 数+ +; } 返回计数; } int main () { int n; printf(“请输入一个数:\ n”); scanf (“% d”,和n); int ret1=Number1 (n); printf (" % d \ n”, ret1); int ret2=科学(n); printf (" % d \ n”, ret2); int ret3=Number3 (n); printf (" % d \ n”, ret3); 系统(“暂停”); 返回0; }代码>