题目
Description
pzzer从不放弃任何一丝希望,只要有希望都想来个大逆袭,不过这次是想把一个无符号数x的位逆转过来,如10进制19(10011)倒转过来后就成为(11001)25.现在问题来了,就是输入个无符号数,要你求得位倒转过来的数。(0<x<=2^32-1)
Input
多组测试数据,每组包括一个无符号正整数
Output
输出逆转后的数
Sample Input
19
12
Sample Output
25
3
代码块
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cn = new Scanner(System.in);
while(cn.hasNext()){
int n = cn.nextInt();
int i =0;
int[] a = new int[1000];
while(n>0){
if(n%2==0) a[i] = 0;
else a[i] = 1;
n/=2;i++;
}
int sum = 0;
for(int j = 0;j< i ;j++){
sum += a[j]*Math.pow(2, i-j-1);
}
System.out.println(sum);
}
}
}