必须要用字符串储存 因为数字已经超过了longlong型的最大长度

进制转换

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

//第一步就是设计一个对于字符串的除法 这一点比较难  不多说上代码
#include<cstdio>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
string str;
vector<int>v;
void divide(){//对于字符串的代码 string str是全局的所以不用靠形参传递。
    int remain=0;  //保留余数
    for(int i=0;i<str.size();++i){//这一段代码请大家自己演示一遍就懂了
        int temp=remain*10+str[i]-'0';
        remain=temp%2;
        str[i]=temp/2+'0';
    }
    while(str[0]=='0'){//对于字符串除***有得到的商最前面有0,必须把0删除
        str.erase(0,1);
    }
}

int main(){
    
    while(cin>>str){
        while(!str.empty()){
            v.push_back((str.back()-'0')%2);//字符串最后一位对2取模就能得到余数
            divide();
        }
        for(int i=v.size()-1;i>=0;i--){//用了一个容器逆序输出
            cout<<v[i];
        }
        cout<<endl;
    }
    return 0;
}


全部评论
没有清除vector上一轮保存的数据,若多轮输入则会出错
点赞 回复 分享
发布于 2021-03-29 20:08

相关推荐

05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

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