文章
28
粉丝
226
获赞
53
访问
146.0k
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 main()
{
int M;
while(cin >> M){
if(M == 0){
cout << 0 << endl;
continue;
}
vector<int> mid;
while(M != 0){
int temp = abs(M) % (-2);
mid.emplace_back(temp);
M = (M - temp) / (-2);
}
for(auto it = mid.rbegin();it != mid.rend();it++){
cout << *it;
}
cout << endl;
}
return 0;
}
登录后发布评论