首页
DreamJudge
院校信息
考研初试
考研复试
保研专区
讨论区
兑换中心
登录
注册
上岸
以下题解仅供学习参考使用。
抄袭、复制题解,以达到刷AC率/AC数量或其他目的的行为,在N诺是严格禁止的。
N诺非常重视学术诚信。此类行为将会导致您成为作弊者。具体细则请查看N诺社区规则。
盐焗鱼丸
2026年3月22日 10:50
负二进制 题解:
P1097
回复 0
|
赞 18
|
浏览 264
第一步:先看题目 → 负二进制 题目说:把十进制数转成 -2 进制 我立刻反应: 这不就是进制转换吗?只是基数是 -2! 第二步:回忆普通进制转换怎么做? 普通转二进制: 除以 2 取余数 商继续算 最后倒着输出 那负二进制应该: 除以 -2 取余数 商继续算 倒着输出 第三步:突然发现一个大坑! 除以 -2 会出现 负数余数! 比如: -3 % -2 = -1 -1 % -2 = -1 但 进制里余数不能是负的!必须是 0 或 1 ...
ZeroQi_404
2026年3月14日 23:19
负二进制 题解:
P1097
回复 0
|
赞 17
|
浏览 326
#include <iostream> using namespace std; int main(){ int m; while(cin >> m){ if(m==0){ cout << 0 <<endl; continue; } string s; while(m!=0){ int r = m % (-2); m /=-2; if(r<0){ r +=2; m +=1; } ...
岸上的乌龟
2026年3月13日 12:47
负二进制 题解:余数为-1,怎么写对应的二进制字符串?
P1097
回复 0
|
赞 20
|
浏览 405
-3➗-2=1...-1,也就是-3=(-2)*1+(-1)=(-2)*2+1; 也就是说,-3可由1个-2和一个-1组成,转换成-3可由2个-2和一个1组成,即-3➗-2=2...1; 将转换后的1看做余数,再将2当作下次操作的除数。 #include<bits/stdc++.h> using namespace std; int main() { int m; while(cin>>m) { ...
Cat111
2026年3月5日 15:28
负二进制 题解:
P1097
回复 0
|
赞 28
|
浏览 585
#include <bits/stdc++.h> using namespace std; int main(){ int n; while(scanf("%d",&n)!=EOF){ int num[1005]; int arc=0; if(n==0) { printf("0\n"); continue; } while(n!=0){ num[arc]=n%(-2); n/=-2; if(num[arc]<0){ num[arc]+=2; n+...
mlx
2026年2月5日 23:16
负二进制 题解:
P1097
回复 0
|
赞 41
|
浏览 776
#include<iostream> #include<algorithm> #include<vector> using namespace std; int n; int main() { while(cin>>n) { vector<int> num; if(n==0) { cout<<0<<endl; continue; } while(n) { int x=n%-2; n/=-2; if...
bro
2026年1月21日 21:28
负二进制 题解:c++
P1097
回复 0
|
赞 29
|
浏览 662
#include <bits/stdc++.h> using namespace std; //十进制转负二进制 int main(){ int num; while(cin >> num){ if(num == 0) { cout<<"0"<<endl; &nb...
18919717626
2025年7月26日 17:20
负二进制 题解:
P1097
回复 0
|
赞 12
|
浏览 1.1k
#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...
无名1
2025年6月25日 16:03
负二进制 题解:C++
P1097
回复 0
|
赞 38
|
浏览 1.4k
#include<bits/stdc++.h> using namespace std; int main(){ int n; while(cin>>n){ int m; string s; if(n==0){ cout<<"0"; }else{ while(n!=0){ m=n%(-2); n=n/(-2); if(m<0){ m=1; n++; } s=s+to_string(m); } for...
Jayho
2025年3月29日 22:05
负二进制 题解:
P1097
回复 0
|
赞 5
|
浏览 1.2k
暴力枚举 把一个变量从1开始递增,转化为二进制进行基数为-2的运算,所得结果与输入数比较。但是比较耗时。。。 #include<bits/stdc++.h> using namespace std; string judge(int n) { if (n == 0) return "0"; int k = 1; while (1) { &nbs...
诗岸梦行舟
2025年3月24日 23:34
负二进制 题解:递归实现
P1097
回复 0
|
赞 22
|
浏览 1.4k
#include<stdio.h> void fer(int x) { if(x==0) return; int chu=x/(-2); int yu=x%(-2); if(yu<0) { yu+=2; chu+=1; } fer(chu); printf("%d",yu); } int main() { int a; while(scanf("%d",&a)!=EOF){ if (a == 0) { printf("0"); } else { fer(a); } ...
1
2
3
题目
负二进制
题解数量
26
发布题解
在线答疑
热门题解
1
逻辑很简单,但是实现却要小心多多
2
负二进制 题解:
3
负二进制 题解:
4
负二进制 题解:
5
负二进制 题解:C++
6
负二进制 题解:c++
7
负二进制 题解:二进制除基取余轻微改写
8
负二进制 题解:
9
负二进制 题解:递归实现
10
负二进制 题解:余数为-1,怎么写对应的二进制字符串?