洛谷P2320鬼谷子的钱袋.

题目

这个题考察二进制分解。

(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
", cnt);
	for (int i = 1; i <= cnt; i++)
		printf("%d ", data[i]);
	return 0;
}

原文地址:https://www.cnblogs.com/liuwenyao/p/10267890.html