您的位置:首页 > 其它

蓝桥杯 算法训练 幂方分解

2018-01-24 09:36 232 查看


import java.util.Scanner;
public class Main {

public static void Mi(int num) {
int flag = -1;
if(num == 1) {
System.out.print("2(0)");
return;
}
if(num == 2) {
System.out.print("2");
return;
}
for(int i = 0;i < 15;i++) {
if(num >= Math.pow(2, i) && num < Math.pow(2, i + 1)) {
flag = i;
break;
}
}
if(flag == -1) {
return;
}else if(flag == 0) {
System.out.print("2(0)");
}else if(flag == 1) {
System.out.print("2");
}else {
System.out.print("2(");
Mi(flag);
System.out.print(")");
}

if((int)(num - Math.pow(2 , flag)) == 0) {
return;
}else {
System.out.print("+");
Mi((int)(num - Math.pow(2 , flag)));
}
}

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
Mi(num);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: