#include<iostream>
using namespace std;
int a[32] = { 1 };
static void f(int n)
{
int flag = 0;
while (n>=a[flag])flag++;
flag--;
if (flag == 0)cout << "2(0)";
else if (flag == 1)cout << "2";
else
{
cout << "2(";
f(flag);
cout << ")";
}
n -= a[flag];
if (n != 0){ //如果n为0就不输出+,同时结束这层递归
cout << '+';
f(n);
}
}
int main()
{
for (int i = 1;i < 32;i++) //判断数组
a[i] = 2 * a[i - 1];
int n;
cin >> n;
f(n);
return 0;
}
2的幂次方表示(C++)
最新推荐文章于 2024-05-15 13:39:00 发布