Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
173676 | 徐启善(C班) | 幂次方 | C++ | 无测评数据 | 0 | 0 MS | 0 KB | 588 | 2024-08-20 23:41:53 |
#include <bits/stdc++.h> using namespace std; void solve(long long n) { if (n == 0) { return; } long long m2 = 1, index = 0; while (n >= m2 * 2) { m2 *= 2; index++; } n -= m2; if (index == 0) { cout << "2"; } else if (index == 1) { cout << "2"; } else { cout << "2("; solve(index); cout << ")"; } if (n > 0) { cout << "+"; solve(n); } } int main() { long long n; cin >> n; solve(n); return 0; }