#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; }