???为什么被举报
查看原帖
???为什么被举报
1213919
bwtx_Minemain0943楼主2024/9/5 09:50

转二进制从小到大排序就行,

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
int n;

vector<bool> zh(int n)
{
    vector<bool> num;
    while (n > 0)
    {
        num.push_back(n % 2);
        n /= 2;
    }
    return num;
}

int main()
{
    cin >> n;
    vector<bool> num = zh(n);
    if(num[0] == 1)
        printf("-1");
    else{
        for (int i = num.size(); i >= 0; i--)
        {
            if(num[i] == 1)
                cout << (1<<i) << ' ';
        }
    }
    return 0;
}
2024/9/5 09:50
加载中...