每个正数都可以用指数形式表示。
例如,
137
=
2
7
+
2
3
+
2
0
137=2^7+2^3+2^0
137=27+23+20。
让我们用
a
(
b
)
a(b)
a(b) 来表示
a
b
a^b
ab。
那么
137
137
137 可以表示为
2
(
7
)
+
2
(
3
)
+
2
(
0
)
2(7)+2(3)+2(0)
2(7)+2(3)+2(0)。
因为
7
=
2
2
+
2
+
2
0
7=2^2+2+2^0
7=22+2+20,
3
=
2
+
2
0
3=2+2^0
3=2+20,所以
137
137
137 最终可以表示为
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)。
给定一个正数
n
n
n,请你将
n
n
n 表示为只包含
0
0
0 和
2
2
2 的指数形式。
输入格式
输入包含多组数据。
每组数据占一行,一个正数
n
n
n。
输出格式
每组数据输出一行,一个指数形式表示。
数据范围
1
≤
n
≤
20000
,
1≤n≤20000,
1≤n≤20000,
每个输入最多包含
100
100
100 组数据。
输入样例:
1315
输出样例:
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
#include<iostream>usingnamespace std;voiddfs(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 <<')';}}}intmain(){int n;while(cin >> n)dfs(n),puts("");return0;}
标签:
递归
本文转载自: https://blog.csdn.net/qq_46456049/article/details/127896965
版权归原作者 sweetheart7-7 所有, 如有侵权,请联系我们删除。
版权归原作者 sweetheart7-7 所有, 如有侵权,请联系我们删除。