#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<sstream>
#include<algorithm>
using namespace std;
long long n,m,l,s=0,j,tmp=0;
string s1,k,r;
int main()
{
long long i;
cin>>s1;
k=s1;
l=k.size()-1;
for(i=0;i<=l;i++)
{
if(k[i]!='2')
{
k[i]='2';
break;
}
}
if(i==l+1)
k[l]='1';
for(j=l;j>=0;j--)
{
{
s+=(k[j]-'0')*pow(3,tmp);
tmp++;
}
}
r="";
while(s)
{
r=char(s%2+'0')+r;
s/=2;
}
k=s1;
tmp=0;
s=0;
cout<<r<<endl;
k[0]='0';
for(j=l;j>=0;j--)
{
{
s+=(k[j]-'0')*pow(3,tmp);
tmp++;
}
}
r="";
while(s)
{
r=char(s%2+'0')+r;
s/=2;
}
cout<<r;
return 0;
}
90分,大佬看一下哪里错了。
王韫之在2019-07-17 10:34:10追加了内容
代码发错了,这个是90分的。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<sstream>
#include<algorithm>
using namespace std;
long long n,m,l,s=0,j,tmp=0;
string s1,k,r;
int main()
{
long long i;
cin>>s1;
k=s1;
l=k.size()-1;
for(i=0;i<=l;i++)
{
if(k[i]!='2')
{
k[i]='2';
break;
}
}
if(i==l+1)
k[l]='1';
for(j=l;j>=0;j--)
{
{
s+=(k[j]-'0')*pow(3,tmp);
tmp++;
}
}
r="";
while(s)
{
r=char(s%2+'0')+r;
s/=2;
}
k=s1;
tmp=0;
s=0;
cout<<r<<endl;
for(i=0;i<=l;i++)
{
if(k[i]=='2'&&i==0)
{
k[i]='1';
break;
}
else if(k[i]!='0'&&i!=0)
{
k[i]='0';
break;
}
}
if(i==l+1)
{
k[l]='1';
}
for(j=l;j>=0;j--)
{
{
s+=(k[j]-'0')*pow(3,tmp);
tmp++;
}
}
r="";
while(s)
{
r=char(s%2+'0')+r;
s/=2;
}
cout<<r;
return 0;
}

