首页
DreamJudge
院校信息
专业题库
模拟考试
机试真题
上岸课程
兑换中心
登录
注册
上岸
以下题解仅供学习参考使用。
抄袭、复制题解,以达到刷AC率/AC数量或其他目的的行为,在N诺是严格禁止的。
N诺非常重视学术诚信。此类行为将会导致您成为作弊者。具体细则请查看N诺社区规则。
Jayho
2025年3月29日 22:05
负二进制 题解:
P1097
回复 0
|
赞 0
|
浏览 26
暴力枚举 把一个变量从1开始递增,转化为二进制进行基数为-2的运算,所得结果与输入数比较。但是比较耗时。。。 #include<bits/stdc++.h> using namespace std; string judge(int n) { if (n == 0) return "0"; int k = 1; while (1) { &nbs...
samxz
2025年3月24日 23:34
负二进制 题解:递归实现
P1097
回复 0
|
赞 0
|
浏览 94
#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); } ...
西电机试专家
2025年3月23日 10:20
负二进制 题解:二进制除基取余轻微改写
P1097
回复 0
|
赞 4
|
浏览 94
eg:正常来说-3%-2=1······-1;那么经过我们本题的逻辑后,就应为-3%-2=2······1;而若2%-2=1······0,则正常的继续运算 #include<bits/stdc++.h> using namespace std; int main(){ //...
xiao菜
2025年3月19日 21:52
负二进制 题解:
P1097
回复 0
|
赞 14
|
浏览 171
我基本看了大家写的题解,然后还是没懂,我又去查B站,看了几个视频还是没懂,我直接去力扣上找这道题,又看了几个解释,终于看懂了 就是跟十进制转换成二进制的流程差不多,也是除、取余两个步骤,重点就是对-2取余会有三种情况:-1、0、1,而对-1在二进制没这种表达方式 所以我们要把-1转成正数1,除法法则:被除数 = 除数 × 商 + 余数,当余数为-1时,我们先-1换成1,相当于加了2,那我们就要减个2才能保证结果不变, 重中之重来了:由于除数是-2,所以我们给商加1,相当于加了个-2,整体就不变了。 还有一个点就是要考虑到被除数是0的情况以及...
KeaiXiaoyu
2023年3月9日 16:59
逻辑很简单,但是实现却要小心多多
P1097
回复 4
|
赞 99
|
浏览 5.1k
又是小白系列的题解反思,这题相比以往做过的题目,坑点更多,然后反思和提高也是能让我们不断变强。尽管这题的代码是搁置了两三天最后憋出来的错误的一道经验教训,不过好在最后终于AC了,但难过的是不知道真实考试的时候会不会也有这样敏锐的判断力,接下来开始我们的复盘吧! 1、首先注意题干,在题设之下,余数(也就是负二进制的输出)只有0、1之分,再加上我们从小学就学过的一道公式:被除数➗除数=商+余数;这个公式也是贯穿我们题目始终的一个逻辑;那么随之而来的问题就是,如果碰到余数为负数的存在,应该怎么办,由于余数的限制,那么我们给出的方案就是:余数不可能为0,那么余数就固定为1输出(这个也体现在...
myming
2024年7月21日 15:56
负二进制 题解:
P1097
回复 0
|
赞 16
|
浏览 946
#include<bits/stdc++.h> using namespace std; void f(int x){ char out[105]; int cnt = 0; if(x == 0){ printf("0\n"); return; } &...
lyb
2024年6月7日 21:38
负二进制 题解:
P1097
回复 0
|
赞 75
|
浏览 1.6k
在这道题中,我们需要对负数求解,和之前将十进制数转为二进制不同的是,余数可能会出现负数的情况,所以我们只需要对负余数进行处理即可。 我们首先要知道c++中对负数取余的计算方式: |小| % |大| = |小| 符号同前 |大| % |小| = |余| 符号同前 在对-2进行取余的过程中只会存在一种-1为余数的情况,其他为0或1我们不用进行处理。 如下面的例子:-3 / -2 = 1 ......-1 我们从结果中借一位,即将1变成2,将余数加2变成1,完美解决问题。 #include <iostream> us...
Candour
2024年6月1日 20:37
负二进制 题解:
P1097
回复 2
|
赞 13
|
浏览 831
负数取余的规则: |小| % |大| = |小| 符号同前 |大| % |小| = |余| 符号同前 举例: 3%4 = 3 ; -3%4 = -3 ; -3%-4 = -3 ; 3%-4 = 3; 5%3 = 2 ; 5%-3 = 2 ;-5%-3 = -2 ; -5%3 = -2; #include<bits/stdc++.h> using namespace std; int n; int main() { while(cin >> n) { string res = "0"; if(!n) {...
122793160
2024年3月26日 14:55
负二进制 题解:看了大佬的解释
P1097
回复 0
|
赞 4
|
浏览 939
#include<bits/stdc++.h> using namespace std; int main(){ int m; while(cin>>m){ string s; if(m==0)s="0"; while(m!=0){...
Sacan
2022年6月2日 23:01
找规律蒙对了感觉
P1097
回复 1
|
赞 10
|
浏览 7.1k
1. 找几个正常转二进制的“除2取余,逆序输出”做做看,发现: 为了保证余数时0或1,就必须保证a和b同号。或者商0,余数为最后一次的被除数。 a是被除数;b是除数和商的乘积。 2. C++中: 13 % -2 = 1 -13 % -2 = -1 然后就。。 蒙对了。。。。。。。。。。。。。。。 #include <iostream> #include <vector> using namespace std; int mai...
1
2
题目
负二进制
题解数量
18
发布题解
在线答疑
热门题解
1
逻辑很简单,但是实现却要小心多多
2
负二进制 题解:
3
负二进制 题解:
4
负二进制 题解:
5
负二进制 题解:
6
主要是对负数的取余,计算机和我们要求的不一样,要人为改值
7
找规律蒙对了感觉
8
负二进制
9
1097负二进制
10
简单的解题思路