-
题目描述:
-
对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们乘B为A的二进制逆序数。
例如对于十进制数173,它的二进制形式为10101101,逆序排列得到10110101,其十进制数为181,181即为173的二进制逆序数。
-
输入:
-
一个1000位(即10^999)以内的十进制数。
-
输出:
-
输入的十进制数的二进制逆序数。
-
样例输入:
-
173
-
样例输出:
-
181
1 package a; 2 import java.math.BigInteger; 3 import java.util.*; 4 public class Main{ 5 public static void main(String[] args) { 6 Scanner cin = new Scanner(System.in); 7 while(cin.hasNext()){ 8 BigInteger a=cin.nextBigInteger(); 9 String strr=a.toString(); 10 String str=new BigInteger(strr,10).toString(2); 11 char []arr=str.toCharArray(); 12 int k=arr.length-1; 13 for(int i=0;i<arr.length/2;i++){ 14 char tem=arr[i]; 15 arr[i]=arr[k]; 16 arr[k]=tem; 17 k--; 18 } 19 String str1 = String.valueOf(arr[0]); 20 for(int i=1;i<arr.length;i++){ 21 str1+=arr[i]; 22 } 23 String str3=new BigInteger(str1,2).toString(10); 24 System.out.println(str3); 25 } 26 cin.close(); 27 } 28 }