这道题 用位运算必然简单 但是苦逼的是自己不熟练 那就 用本办法
输入一个十进制数 转换成二进制翻转 去掉高位的零 然后再转化为十进制 输出!
1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 int main() 5 { 6 int i, x, sum, sum1, n, sum2; 7 int z[100]={0}; 8 while( scanf( "%d" , &n ) != EOF ) 9 { 10 sum = sum1 =sum2 = 0; 11 x = i = 0; 12 while( n ) 13 { 14 z[x++] = n%2; 15 n = n / 2; 16 } 17 for( int j = x-1; j >= 0; j--) 18 { 19 sum2=pow ( 2, i ); 20 sum1+=pow( 2 , i )*z[j]; 21 i++; 22 } 23 printf( "%d\n" , sum1 ); 24 } 25 return 0; 26 }
戳这里
时间: 2024-10-13 03:05:22