蓝桥杯 算法训练 幂方分解
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); } }