一个1000位(即10^999)以内的十进制数。
输入的十进制数的二进制逆序数。
173
181
import java.math.BigInteger; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(scanner.hasNext()) { BigInteger n = scanner.nextBigInteger(); String nBinary = n.toString(2); String nBinaryReverse = ""; for (int i = nBinary.length() - 1;i >= 0; i--) { nBinaryReverse += Character.toString(nBinary.charAt(i)); } //BigInteger类的构造方法,将二进制的字符串转化成BigIntege十进制类型的 System.out.println(new BigInteger(nBinaryReverse,2)); } } }
import java.util.Scanner; import java.util.Stack; import java.math.BigInteger; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { BigInteger num1 = new BigInteger(in.next()); Stack<Integer>s1 = new Stack<>(); while (!num1.equals(new BigInteger("0"))) { s1.push(num1.mod(new BigInteger("2")).intValue()); num1 = num1.divide(new BigInteger("2")); } Stack<Integer>s2 = new Stack<>(); while (!s1.empty()) { s2.push(s1.pop()); } BigInteger num2 = new BigInteger("0"); while (!s2.empty()) { num2 = num2.multiply(new BigInteger("2")) .add(new BigInteger(String.valueOf(s2.pop()))); } System.out.println(num2); } } }
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.math.BigInteger; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s; while ((s = br.readLine()) != null) { BigInteger A = new BigInteger(s, 10); String atwo = A.toString(2); StringBuilder sb = new StringBuilder(atwo); String btwo = String.valueOf(sb.reverse()); BigInteger B = new BigInteger(btwo, 2); System.out.println(B); } } }
import java.util.*; import java.math.*; public class Main{ public static void main(String[] args){ Scanner cin=new Scanner(System.in); while(cin.hasNext()){ BigInteger a=cin.nextBigInteger(); String s=a.toString(2); String res=""; for(int i=s.length()-1;i>=0;i--){ res=res+s.charAt(i); } BigInteger b=new BigInteger(res,2);//这个意思就是表明我res是一个二进制字符串,所以转换成大整数自动转换成十进制的 //String t=b.toString(10); //BigInteger ans=new BigInteger(t); //BigInteger ans=new BigInteger(res,10);//这个表示的是res是一个十进制的字符串,所以ans返回的是一个大整形将还是res这个字符串,没有变化的 System.out.println(b); } } }
import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 一个1000位(即10^999)以内的十进制数。 BigInteger i = scanner.nextBigInteger(); String s = i.toString(2); String reverse = new StringBuilder(s).reverse().toString(); System.out.println(new BigInteger(reverse,2)); } }
//十进制数转化为二进制数,逆序反转后转化为十进制数 import java.util.*; import java.math.BigInteger; public class Main { public static void main(String[] args) { // write your code here Scanner in=new Scanner(System.in); while (in.hasNext()){ String s1=in.nextLine(); BigInteger a=new BigInteger(s1,10);//十进制的大整数 StringBuffer sb=new StringBuffer(); //二进制数只有转化成字符串才能反转 String s2=sb.append(a.toString(2)).reverse().toString(); BigInteger b=new BigInteger(s2,2); System.out.println(b.toString(10)); } } }