lizhenghang123AKNOI @ 2024-09-25 20:28:09
#include<iostream>
using namespace std;
int cnt,p;
string s,k;
int main(){
cin>>s;
for(int i=0;i<s.size()-2;i++){
if(s[i]>='0'&&s[i]<='9'){
cnt++;
p+=(s[i]-'0')*cnt;
}
}
p%=11;
if(p==10){
for(int i=0;i<s.size()-1;i++)cout<<s[i];
cout<<"X";
return 0;
}
if(s[s.size()-1]-'0'!=p){
for(int i=0;i<s.size()-1;i++)cout<<s[i];
cout<<p;
}else cout<<"Right";
return 0;
}
by lizhenghang123AKNOI @ 2024-09-25 20:31:28
提交记录
by zh_felix @ 2024-09-25 20:52:17
我的AC代码
#include<iostream>
using namespace std;
int cnt=1, p;
char ans;
string s;
int main(){
cin>>s;
for(int i=0;i<s.size()-1;i++){
if(s[i]>='0'&&s[i]<='9'){
p+=(s[i]-'0')*cnt;
cnt++;
}
}
p%=11;
if(p==10) {
ans='X';
} else {
ans=p+'0';
}
if(s[s.size()-1]!=ans){
for(int i=0;i<s.size()-1;i++)cout<<s[i];
cout<<ans;
}else cout<<"Right";
return 0;
}
AC记录\
如果 p
等于 Right
。
by zh_felix @ 2024-09-25 20:54:18
@lizhenghang123
by qmhn @ 2024-09-26 17:31:54
0-500-00000-X你试试这个测试样例,我的过了的程序运行结果是Right但你的是它本身,简单来说就是X也应该纳入考虑,前面运算结果可能为10@lizhenghang123
by lizhenghang123AKNOI @ 2024-09-26 17:46:47
感谢,已AC
by lizhenghang123AKNOI @ 2024-09-26 17:47:19
@zh_felix 已关
by lizhenghang123AKNOI @ 2024-09-26 17:47:32
@qmhn 已关