酷代码 AI
菜单

1212: 幂次方 内存限制:128 MB 时间限制:1.000 S 评测方式:文本比较 命题人:外部导入 提交:38 解决:23 题目描述 任何一个正整数都可以用 的幂次方表示。例如 。 同时约定方次用括号来表示,即 可表示为 。 由此可知, 可表示为 进一步: ( 用 表示),并且 。 所以最后 可表示为 。 又如 所以 最后可表示为 。 输入 一行一个正整数 。 输出 符合约定的 的 表示(在表示中不能有空格)。 样例输入 复制 1315 样例输出 复制 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 提示 **【数据范围】** 对于 的数据, 。

```cpp #include <iostream> #include <string> using namespace std; string dfs(int n) { if (n == 0) return "0"; if (n == 1) return "2(0)"; if (n == 2) return "2"; string res = ""; int power = 0; while (n > 0) { if (n & 1) { string term; if (power == 0) term = "2(0)"; else if (power == 1) term = "2"; else term = "2(" + dfs(power) + ")"; if (res.empty()) res = term; else res = term + "+" + res; } n >>= 1; power++; } return res; } int main() { int n; cin >> n; cout << dfs(n) << endl; return 0; } ``` [2026-01-05 12:17:36 | AI问答 | 212点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多