题目
这个题考察二进制分解。
\(Code\)
#include <bits/stdc++.h>
#pragma GCC optimize(2)
#pragma GCC optimize(3)
using namespace std;
long long n, data[100010], cnt;
int main()
{
scanf("%d", &n);
while (n)
{
data[++cnt] = (n + 1) / 2;
n /= 2;
}
sort(data + 1, data + 1 + cnt);
printf("%d\n", cnt);
for (int i = 1; i <= cnt; i++)
printf("%d ", data[i]);
return 0;
}