每个正数都可以用指数形式表示。
例如,137=27+23+20137=2^7+2^3+2^0137=27+23+20。
让我们用 a(b)a(b)a(b) 来表示 aba^bab。
那么 137137137 可以表示为 2(7)+2(3)+2(0)2(7)+2(3)+2(0)2(7)+2(3)+2(0)。
因为 7=22+2+207=2^2+2+2^07=22+2+20,3=2+203=2+2^03=2+20,所以 137137137 最终可以表示为 2(2(2)+2+2(0))+2(2+2(0))+2(0)2(2(2)+2+2(0))+2(2+2(0))+2(0)2(2(2)+2+2(0))+2(2+2(0))+2(0)。
给定一个正数 nnn,请你将 nnn 表示为只包含 000 和 222 的指数形式。
输入格式
输入包含多组数据。
每组数据占一行,一个正数 nnn。
输出格式
每组数据输出一行,一个指数形式表示。
数据范围
1≤n≤20000,1≤n≤20000,1≤n≤20000,
每个输入最多包含 100100100 组数据。
输入样例:
1315
输出样例:
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
#includeusing namespace std;void dfs(int n){bool flag = true;for(int i = 14; i >= 0; i--){if(n >> i & 1){if(flag) flag = false;else cout << '+';cout << 2;if(i != 1) cout << '(';if(i >= 3) dfs(i);else{if(i != 1) cout << i;}if(i != 1) cout << ')';}}}int main(){int n;while(cin >> n) dfs(n), puts("");return 0;
}