求助

P1055 [NOIP2008 普及组] ISBN 号码

昊轩啥也不是 @ 2021-08-20 16:30:48

为什么输入0-670-82162-4不能输出Right而是输出0-670-82162-0啊?

因为之前的没人回还被刷下去了就再发一次


#include<bits/stdc++.h>
using namespace std;
int main(){
char s[13];
int s1[13],len=0,ans=0,sum=1,i;
    cin>>s;
    int size=strlen(s);
    for(i=0;i<size;i++){
    if(s[i]!='-'){
        s1[len]=s[i]-48;
        len++;
    }
}
    for(i=0;i<len;i++){
        ans+=s1[i]*sum;
        sum++;
    }
    ans=ans%11;

    if(ans==10){
    if(s[size-1]=='X'){
    cout<<"Right";
    }
else{
for(i=0;i<size-1;i++) cout<<s[i];
        cout<<"X";
    }
}

    else{
    if(ans==s[size-1]-48){
        cout<<"Right";
    }
else{
for(i=0;i<size-1;i++) cout<<s[i];
        cout<<ans;
    }
}
    return 0;
}

by xiaoxixi1234567 @ 2021-08-20 16:35:16

一名蒟蒻小声嘀咕:这是什么的程序啊?看不懂欸 虽然大部分代码都看不懂


by Mine_King @ 2021-08-20 16:37:25

你把最后一位也算进去了。也就是说,

    for(i=0;i<len;i++){

要改成

    for(i=0;i<len-1;i++){

by hhn001 @ 2021-08-20 16:43:34

@xiaoxixi1234567 瞬间打脸


by xiaoxixi1234567 @ 2021-08-20 16:48:34

@Mine_King 题外话:请问超级大佬的头像是国家队吗(02和男主?)


by 昊轩啥也不是 @ 2021-08-20 16:54:11

@Mine_King 我ac了,谢谢大佬


|