- 题目描述:
-
Every positive number can be presented by the exponential form.For example, 137 = 2^7 + 2^3 + 2^0。
Let's present a^b by the form a(b).Then 137 is presented by 2(7)+2(3)+2(0). Since 7 = 2^2 + 2 + 2^0 and 3 = 2 + 2^0 , 137 is finally presented by 2(2(2)+2 +2(0))+2(2+2(0))+2(0).
Given a positive number n,your task is to present n with the exponential form which only contains the digits 0 and 2.
- 输入:
-
For each case, the input file contains a positive integer n (n<=20000).
- 输出:
-
For each case, you should output the exponential form of n an a single line.Note that,there should not be any additional white spaces in the line.
- 样例输入:
-
1315
- 样例输出:
-
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
package 上海交大; import java.util.Scanner; public class 幂次方1095 { static int n; public static void main(String[] args) { Scanner s = new Scanner(System.in); while (s.hasNextInt()) { n = s.nextInt(); System.out.println(f(n)); } } static String f(int n) { StringBuffer sb = new StringBuffer(); if (n < 8) { switch(n){ case 0: return "0"; case 1: return ""; case 2: return "2"; case 3: return "2+2(0)"; case 4: return "2(2)"; case 5: return "2(2)+2(0)"; case 6: return "2(2)+2"; case 7: return "2(2)+2+2(0)"; } }else{ String temp = Integer.toBinaryString(n); int len = temp.length(); for(int i=0; i