题解 | #进制转换#

进制转换

http://www.nowcoder.com/practice/0337e32b1e5543a19fa380e36d9343d7

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
char mode(string number) {
    return (number[number.size() - 1] - '0') % 2 + '0';
}
string binary(string number) {
    int remainder = 0;
    int temp;
    for (int i = 0; i < number.size(); ++i) {
        temp=number[i] - '0' + remainder * 10;
        number[i] = temp / 2 + '0';
        remainder=temp%2;
    }
    int pos = 0;
    while (number[pos] == '0') {
        ++pos;
    }
    return number.substr(pos);
}
int main() {
    string str;
    while (cin >> str) {
        string resultant;
        while (str.size()!=0) {
            resultant.push_back(mode(str));
            str=binary(str);
        }
        for (int i = resultant.size() - 1; i >= 0; --i) {
            printf("%c", resultant[i]);
        }
        printf("\n");
    }
    return 0;
}

全部评论

相关推荐

饿魔:看到在线简历了吧
点赞 评论 收藏
分享
12-11 14:24
门头沟学院 Java
牛客35720396...:不要用boss,全是骗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务