文章
10
粉丝
0
获赞
18
访问
527
#include <cstdio>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
string s;
int mod()
{
return (s[s.size()-1]-'0')%2;
}
void div() {
string res;
int carry=0;
for(int i=0;i<s.size();i++)
{
int num=s[i]-'0'+carry*10;
res.push_back(num/2+'0');
carry=num%2;
}
// 移除结果中的前导零(保留至少一位数字)
while (res.size() > 1 && res[0] == '0') {
res.erase(res.begin());
}
s=res;
}
void work()
{
if(s=="0")
{
cout<<"0"<<endl;
}
vector<int> nums;
while(s!="0")
{
nums.push_back(mod());
div();
}
reverse(nums.begin(),nums.end());
for (int i = 0; i < nums.size(); i++)
cout << nums[i];
cout << endl;
}
int main()
{
while(cin>>s)
{
work();
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发