文章

1

粉丝

0

获赞

14

访问

173

头像
负二进制 题解:
P1097
发布于2025年3月19日 21:52
阅读数 173

我基本看了大家写的题解,然后还是没懂,我又去查B站,看了几个视频还是没懂,我直接去力扣上找这道题,又看了几个解释,终于看懂了

就是跟十进制转换成二进制的流程差不多,也是除、取余两个步骤,重点就是对-2取余会有三种情况:-1、0、1,而对-1在二进制没这种表达方式

所以我们要把-1转成正数1,除法法则:被除数 = 除数 × 商 + 余数,当余数为-1时,我们先-1换成1,相当于加了2,那我们就要减个2才能保证结果不变,

重中之重来了:由于除数是-2,所以我们给商加1,相当于加了个-2,整体就不变了。 

还有一个点就是要考虑到被除数是0的情况以及输出格式

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>  
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#include <climits>
using namespace std;


int main() {
    int n;
    while(cin >> n){
        if(n == 0){
            cout << "0";
            continue;
        }
        string str = "";
        w...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发