文章

67

粉丝

19

获赞

374

访问

44.0k

头像
负二进制 题解:
P1097
发布于2025年7月26日 17:20
阅读数 51

#include <iostream>
#include <cstring>

using namespace std;
const int N = 10010;

int m, cnt, c;
int w[N];

int main()
{
	while (cin >> m)
	{
		if (m == 0) cout << 0 << endl;
		else
		{
			memset(w, 0, sizeof w);
			cnt = 0;
			
			while (m != 0)
			{
				if (m > 0) c = m / (-2);
				else c = (m - 1) / (-2);
				w[cnt ++] = m + 2 * c;
				m = c;
			}
			
			for (int i = cnt - 1; i >= 0; i --) cout << w[i];
			cout << endl;
		}
	}
	
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发