一个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));
}
}
}