70分求助,#5,6,9WA

P1055 [NOIP2008 普及组] ISBN 号码

李逸然123 @ 2023-08-22 15:42:57

代码如下:

#include<bits/stdc++.h>
using namespace std;
string a;
int main()
{
    int i,b=1,l,ans=0;
    cin>>a;
    l=a.size();
    for(i=0;i<l-1;i++)
    {
        if(a[i]<='9'&&a[i]>='0')
        {
            ans+=int((a[i])-48)*b;
            b++;
        }
    }
    //cout<<ans<<endl;
    ans=ans%11;
    if(ans==int(a[12]-48)||(ans==10&&a[12]=='X'))
    {
        cout<<"Right";
        return 0;
    }
    else
    {
        for(i=0;i<l;i++)
        {
            if(i==l-1)
                cout<<char(ans+48);
            else
                cout<<a[i];
        }
    }
    return 0;
}

样例能过,一直看不出问题在哪,thx.


by OrangePayne @ 2023-08-22 15:51:44

要是ans=10且a[12]不为X时,你就完蛋了


by OrangePayne @ 2023-08-22 16:02:46

@李逸然123


by 李逸然123 @ 2023-08-22 16:10:54

@GreenPayne 谢谢,A了


|