2 条题解

  • 1
    @ 2024-8-15 11:40:50
    #include<bits/stdc++.h>
    using namespace std;
    string s;
    int main(){
    	int n=0,a=1;
    	cin>>s;
    	for(int i=0;i<11;i++){
    		if(s[i]=='-') continue;
    		n+=(s[i]-'0')*a;
    		a++;
    	}
    	n%=11;
    	if(s[12]==n+'0' or s[12]=='X' and n==10) cout<<"Right";
    	else{
    		for(int i=0;i<12;i++) cout<<s[i];
    		if(n==10) cout<<'X';
    		else cout<<n;
    	}
    }
    
    • 1
      @ 2024-7-20 12:05:23
      #include<iostream>
      using namespace std;
      int main(void){
          char a,b,c,d,e,f,g,h,i,j;
          int check;
          scanf("%c-%c%c%c-%c%c%c%c%c-%c",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j);//使用scanf读入和字符处理   char类型的数字  不是Int类型  '0'代表整数48  所以不可以直接对这个整数进行计算
          check = (a - '0')*1 + (b - '0') * 2 + (c - '0') * 3 + (d - '0') * 4 + (e - '0') * 5 //而是要减去 '0' 变成数字类型才可以进行计算     输出的时候也要注意识别码是int类型  需要转换成char类型  主要针对最后一个字符
          + (f - '0') * 6 +(g - '0') * 7 + (h - '0') * 8 + (i - '0') * 9;//最后一个字符 如果check是10  下输出x    如果不是    那么转换成int类型即可输出
          check = check % 11;//将j转换成数字类型进行比较  - '0' 
          if(j == 'X' && check == 10 || check == j - '0'){
              printf("Right\n");
          }
          else{
              //j不正确    如果check = 10 更改为x   如果 checK不为10  + 0 转换成字符形式
              printf("%c-%c%c%c-%c%c%c%c%c-%c",a,b,c,d,e,f,g,h,i,check == 10 ? 'X' : check +'0');
          }
          return 0;
      }
      
      • 1

      信息

      ID
      408
      时间
      1000ms
      内存
      128MiB
      难度
      5
      标签
      递交数
      77
      已通过
      32
      上传者