80分

P1055 [NOIP2008 普及组] ISBN 号码

najja @ 2022-10-26 16:42:11

#include<bits/stdc++.h>
using namespace std;
string a;
int cnt,cnt1=1; 
int main()
{
    getline(cin,a);
    for(int i=0;i<a.size()-1;i++)
    {
        if(a[i]!='-')
        {
            cnt+=(a[i]-'0')*cnt1;
            cnt1++;
        }
    }
    cnt%=11;
    if(cnt==10)
    {
        if(a[a.size()-1]=='X')
        {
            cout<<"Right"<<endl;return 0;
        }
        else 
        {
            cout<<a.substr(0,a.size()-2)<<"-X"<<'\n';return 0;
        }
    }
    if(a[a.size()-1]=='X'&&cnt==10){
        cout<<"Right\n";
    }
    if(cnt==(a[a.size()-1]-'0')) cout<<"Right\n";
    else cout<<a.substr(0,a.size()-2)<<'-'<<cnt<<'\n';
}

by _Anoxia @ 2022-11-04 11:29:42

我一开始和你一样,用getline输入,然后测试点4、7过不了,但是在VS上是可以得到正确结果的,然后我改成cin读入就过了所有检查点,至于为什么,我现在也是懵的


by wuyuchen5001143 @ 2023-01-05 21:49:32

@_Anoxia 因为原数据末尾有空格,现已修复,可以用getline()了


|