public class first {
public static void print(String s) {
System.out.print(s);
}
public static int getMaxofTwo(int n) {
int i=0;
while(true) {
double t = Math.pow(2, i);
if(t>n) {
return i-1;
}else if(t==n) {
return i;
}
i++;
}
}
public static void main(String[] args) throws IOException {
Scanner input = new Scanner(System.in);
int n = input.nextInt();//得到输入
int t,a;
ArrayList<Integer> num = new ArrayList<>();
while(true) {
t = getMaxofTwo(n);
num.add(t);
a = (int) Math.pow(2,t);
if(a==n) {//找到最后一个指数
break;
}
n = n - a;
}//求出所有的指数
//格式化输出好看点
for(int i=0;i<num.size()-1;i++) {
print(2+"^"+num.get(i)+"+");
}
System.out.println(2+"^"+num.get(num.size()-1));
}
}
Java:2的幂次方表示
最新推荐文章于 2024-06-30 10:30:00 发布
本文介绍了一个Java程序,该程序能够接收一个整数作为输入,并将其分解为若干2的幂次方之和的形式,从而展示如何通过算法找出整数在二进制表示下的指数部分。
1552

被折叠的 条评论
为什么被折叠?



