C++ Code
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
//2013年华为c语言上机试题2 //计算一个整数二进制表达式中0的个数 #include<stdio.h> //计算整数中0的个数,下面的方法用移位的操作,更加简单一些 /*void numzero(int k, int*zeronum) { int i; int remin; int inter; (*zeronum) = 0; i = k; inter = i / 2; remin = i % 2; while(inter) { if(remin == 0) { (*zeronum)++; } remin = inter % 2; inter = inter / 2; } }*/ void numzero( int k, int*zeronum) { (*zeronum) = 0; while(k != 0) { if((k & 1) == 0) { (*zeronum)++; } k >>= 1; } } void main() { int i; int temp; int num = 0; printf( "请输入一个整数\n"); temp = scanf( "%d", &i); while(temp == 1) { numzero(i, &num); printf( "%d的二进制数中0的个数为%d\n", i, num); printf( "请输入下一个整数,输入其它字符结束\n"); temp = scanf( "%d", &i); } } |