首页 > 代码库 > 学校acm比赛题

学校acm比赛题

这道题 用位运算必然简单  但是苦逼的是自己不熟练  那就 用本办法

输入一个十进制数  转换成二进制翻转 去掉高位的零 然后再转化为十进制 输出!

技术分享
 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 }
戳这里

 

学校acm比赛题