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

posted @ 2019-01-14 17:09  DAGGGGGGGGGGGG  阅读(131)  评论(0编辑  收藏  举报