3 条题解
-
2
#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; } }
-
2
#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
#include<bits/stdc++.h> using namespace std; int main() { int sum=0; vector<char>xx; int ass=1; for(int i = 1;i <= 12;i++) { char a; cin >> a; if(a!='-') { if(a=='X') { sum+=10*ass; } else { sum+=(a-48)*ass; ass++; } } xx.push_back(a); } sum=sum%11; int c; cin >> c; if(c==0) { if(sum==10) { cout << "Right"; return 0; } } if(sum==c) { cout << "Right"; } else { for(char w : xx) { cout << w; } if(sum==10) { cout << "X"; return 0; } cout << sum; } return 0; }
- 1
信息
- ID
- 408
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 120
- 已通过
- 50
- 上传者