NH4HCO3 @ 2022-09-24 19:02:59
自我测试是对的,结果只有50分
#include<iostream>
#include<string>
using namespace std;
int main()
{
int x,i,j,k=0,l=1,z=0;
string s,w;
cin>>s;
//cout<<s;
while(s[k]!='\0'){
if(l==10){
break;
}
if(s[k]!='-'){
z=z+(s[k]-'0')*l;
l++;
}
k++;
}
z=z%11;
if(z==s[k+1]-'0'){
cout<<"Right";
}
else{
s[k+1]=z+'0';
cout<<s;
}
//cout<<s[k+1];
return 0;
}
by CCK_demon @ 2022-09-24 20:53:46
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
char a[14],mod[12]="0123456789X";//先将对11取余后的十一个字符存入数组
gets(a);//输入字符串
int j=1,t=0;
for(int i=0;i<12;i++)
{
if(a[i] == '-')//字符串为分隔符'-'时跳过此次循环
{
continue;
}
t=t+(a[i]-'0')*j++; //t储存第j个数字*j的和
}
if(mod[t%11]==a[12])
{
cout<<"Right";
}
else
{
a[12]=mod[t%11];//若识别码错误,则赋正确的识别码,然后输出
puts(a);//换行
}
return 0;
}