问题标题: 酷町堂:2876

0
0
已解决
王韫之
王韫之
修练者
修练者

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

 


0
已采纳
叶子煊
叶子煊
中级光能
中级光能

给你一个提示

当你输出1的时候你看看你输出的是什么

正确的应该是10 10

自己在你原有的代码上修改

如果还不会再问我吧

~~~~~~~~~~~~~~~~~~~~~~~

望采纳~~~

0
0
0
我要回答