文章
1
粉丝
0
获赞
14
访问
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...
登录后发布评论
暂无评论,来抢沙发