1 solutions

  • 0
    @ 2024-6-5 14:34:15

    模拟题(O(n))

    只考虑余数为0-9

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {   
        string s;
        cin>>s;
        int n=s.size();
        int res=0; //总和
        int cnt=1; //第几个数字
        for(int i=0;i<n-1;i++)
        {
            if(s[i]>='0'&&s[i]<='9')
            {
                res=res+cnt*(s[i]-'0');
                cnt++;
            }
        }
        //cout<<res<<endl;
        int r=res%11;
        if(r==s[n-1]-'0')
        {
            cout<<"Right";
        }
        else
    	{
            s[n-1]=r+'0';
            cout<<s;
        }
        return 0;
    }
    

    完整代码

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {   
        string s;
        cin>>s;
        int n=s.size();
        int res=0; //总和
        int cnt=1; //第几个数字
        for(int i=0;i<n-1;i++)
        {
            if(s[i]>='0'&&s[i]<='9')
            {
                res=res+cnt*(s[i]-'0');
                cnt++;
            }
        }
        //cout<<res<<endl;
        int r=res%11;
        if(r==10&&s[n-1]=='X'||r==s[n-1]-'0')
        {
            cout<<"Right";
        }
        else{
            if(r==10)
            {
                s[n-1]='X';
            }
            else{
                s[n-1]=r+'0';
            }
            cout<<s;
        }
        return 0;
    }
    
    • 1

    Information

    ID
    421
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    9
    Tags
    # Submissions
    9
    Accepted
    4
    Uploaded By