4.12 咪咕笔试编程题AC
题目描述:给定一个非常大的整数,要求输出该整数反转后的二进制数
思路:1. 先把整数用阶梯除法方式转变成二进制保存进数组(该数组存入后已实现反转无需再次做反转步骤) 2. 再把反转后的二进制转变成整数
不知各位大佬拿到的是不是这道题,总感觉有更好的思路,求分享
代码如下:
package Testing; import java.util.*; public class Main { public static void main(String [] args) { Scanner scan = new Scanner(System.in); String input = scan.nextLine(); long number = Long.parseLong(input); long[] binaryForm = new long[32]; for(int i = 0; number > 1; i++) { long temp = number % 2; number = number / 2; binaryForm[i] = temp; if(number < 2) { binaryForm[i + 1] = number; } } long sum = 0; int power = 0; for(int i = binaryForm.length - 1; i >= 0; i--) { if(binaryForm[i] == 1) { sum += Math.pow(2, power); } power++; } System.out.print(sum); } }