/*
* 2的幂次方表示
*/
#include<iostream>
using namespace std;
void f(int n, int bit) {
if (n == 0)return;
int r = n % 2;//判断是否有余数1
n /= 2;
f(n, bit + 1);
if (n != 0 && r != 0)cout << '+';//补加号的条件
if (r == 1) {//判断分解最后一位的1
if (bit == 0)cout << "2(0)";
else if (bit == 1)cout << "2";
else if (bit == 2)cout << "2(2)";
else {
cout << "2(";
f(bit, 0);
cout << ')';
}
}
}
int main()
{
int n;
cin >> n;
f(n, 0);
return 0;
}
2的幂次方表示
最新推荐文章于 2024-09-07 10:59:43 发布