首页 > 4.12 咪咕笔试编程题AC
头像
牛皮已破
编辑于 2020-04-12 16:50
+ 关注

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

}



全部评论

(9) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐