3 条题解

  • 3
    @ 2026-8-27 14:35:34
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        string s;
        cin>>s;
        string num;
        for(int i=0;i<s.size();i++){
            if(s[i]!='-')
                num+=s[i];
        }
        int sum=0;
        for(int i=0;i<9;i++){
            sum+=(num[i]-'0')*(i+1);
        }
        int mod=sum % 11;
        char ans;
        if(mod==10) ans='X';
        else ans=mod+'0';
        if(num[9] == ans){
            cout<<"Right"<< endl;
        }
        else{
            cout<<num[0]<< "-"<<num[1]<<num[2]<<num[3]<<"-"<<num[4]<<num[5]<<num[6]<<num[7]<<num[8]<<"-"<<ans<<endl;
        }
        return 0;
    }
    
    • @ 2026-8-27 15:48:24

      第七行会被禁告,s.size()返回的一般是无符号整数,int是有符号整数,可以把int改成size_t。

  • 2
    @ 2026-8-27 11:27:00
    #include <bits/stdc++.h>
    using namespace std;
    int main(){
        string isbn;
        cin>>isbn;
        int nums[9],s=0,h=0;
        for(int i=0;i<isbn.size()&&s<9;i++){
        	if(isbn[i]!='-'){
        	nums[s]=isbn[i]-'0';
        	s+=1;
                }
    	}
    	for(int i=0;i<9;i++){
    		h+=nums[i]*(i+1);
    	}
    	int y=h%11;
    	char zsb;
    	if(y==10){
    		zsb='X';
    	}
    	else{
    		zsb=y+'0';
    	}
    	char ysb=isbn.back();
    	if(ysb==zsb){
    		cout<<"Right";
    	}
    	else{
    		isbn.back()=zsb;
    		cout<<isbn;
    	}
    	return 0;
    }
    
    • 1
      @ 2026-8-27 22:52:19

      别怕孩子们我来给你们写题解了,最简单最通俗最无脑! (os:最近再某书上骂时代峰峻,被被别人骂了很久) 下面请欣赏题解吧(且看且珍惜)

      #include<stdio.h>
      #include<string.h> 
      int main(){
      	char s[15]={0};
      	scanf("%s",s);
      	int len=strlen(s),a=s[len-1]-'0',b=0,c=1,d;
      	for(int i=0;i<=11;i++){
      		if(s[i]!='-'){
      			b=b+(s[i]-'0')*c;
      			c++;
      			//printf("%d %d\n",b,c);
      		}
      	}
      	d=b%11;
      	//printf("%d %d\n",d,a);
      	if(d==10&&s[len-1]=='X'||d==a){
      		printf("Right");
      	}else{
      		for(int i=0;i<=11;i++){
      			printf("%c",s[i]);
      		}
      		if(d!=10){
      			printf("%d",d);
      		}else{
      			printf("X");
      		}
      	}
      	return 0;
      }
      
    • 1

    【深基3.例12】[NOIP2008 普及组] ISBN 号码

    信息

    ID
    97
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    60
    已通过
    26
    上传者