zhonghongye @ 2023-08-26 19:40:56
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
int s=0,n1,n2,b,k=1;
cin>>a;
for(int i=0;i<12;i++)
{
if(a[i]=='-')
continue;
else
{
b=a[i]-'0';
s=s+b*k;
k++;
}
}
n1=a[12]-'0';
n2=s%11;
if(n1==n2)
cout<<"Right";
else
{
for(int i=0;i<12;i++)
cout<<a[i];
cout<<n2;
}
return 0;
}
by OIerWu_829 @ 2023-08-26 19:42:13
#include <bits/stdc++.h>
using namespace std;
int main()
{
char a[100];
scanf("%c-%c%c%c-%c%c%c%c%c-%c", &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7], &a[8], &a[9]);
int sum = 0,remainder;
char ch;
for (int i = 0; i < 9; i++)
{
sum += (a[i] - '0') * (i + 1);
}
remainder = sum % 11;
if (remainder == 10) ch = 'X';
else ch = remainder + '0';
if (ch == a[9]) printf("Right\n");
else
printf("%c-%c%c%c-%c%c%c%c%c-%c\n", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], ch);
return 0;
}
仅供参考
不要脸的求个关
by clarkwang @ 2023-08-26 19:50:12
如果你真是每天做,建议换道题或者参考题解
如果不是,建议你每天做8小时(
by tyr_04 @ 2023-08-26 19:56:34
@zhonghongye 你忘了一个地方,当余数为10时,识别码位X
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
int s=0,n1,n2,b,k=1;
cin>>a;
for(int i=0;i<12;i++)
{
if(a[i]=='-')
continue;
else
{
b=a[i]-'0';
s=s+b*k;
k++;
}
}
n1=a[12]-'0';
n2=s%11;
if(n1==n2||(n2==10&&a[12]=='X'))//新增一个余数为10的特判,此时a[12]应该等于X
cout<<"Right";
else
{
for(int i=0;i<12;i++)
cout<<a[i];
if(n2==10)//特判
{
cout<<'X';
}
else
{
cout<<n2;
}
}
return 0;
}
by tyr_04 @ 2023-08-26 19:57:26
@zhonghongye 所以以后要认真读题啊,顺便求个关注QAQ
by zcy_jake @ 2023-08-27 09:36:31
@zhonghongye
我的最简单易懂,且最短!
#include<bits/stdc++.h>
using namespace std;
string a;
int sum,k,ans;
char ansc;
int main() {
cin>>a;
for(int i=0;i<a.size()-2;i++){
if(a[i]!='-'){
k++;
sum+=(a[i]-'0')*k;
}
}
sum%=11;
if(sum==10)ansc='X';
else ansc=sum+'0';
if(a[12]==ansc)cout<<"Right"<<endl;
else{
for(int i=0;i<a.size()-1;i++)cout<<a[i];
cout<<ansc<<endl;
}
}
求关(QWQ)
by tyr_04 @ 2023-08-27 14:05:23
@zcy_jake 但你用的是你自己的代码,我是用他的代码调试的
by hang2023 @ 2023-09-02 14:58:22
要考虑有 X
的情况。
by zhonghongye @ 2023-09-03 19:40:55
谢谢奥!