#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int n;
string trans(int n)
{
string s;
int m = n;
for (; m != 0;)
{
int i;
for (i = 0; pow(2, i) <= m; i++) {}
if (1 == i)
s += "+2(0)";
else if (2 == i)
s += "+2";
else
s += "+2(" + trans(i - 1) + ")";
m -= pow(2, i - 1);
}
return s.substr(1);
}
int main()
{
cin >> n;
cout << trans(n);
return 0;
}
洛谷P1010 [NOIP1998 普及组] 幂次方进阶解法
最新推荐文章于 2024-04-19 14:56:35 发布
本文介绍了一种使用递归算法将十进制数转换为二进制表示的方法,并通过C++实现。该算法能够输出类似人类理解的二进制加法表达式,如'+2(0)'、'+2'等。
384

被折叠的 条评论
为什么被折叠?



