zxy_sh @ 2022-07-23 10:35:57
#include <bits/stdc++.h>
using namespace std;
int main()
{
int ans=0;
char b[15];
for(int i=1;i<=13;i++)
cin>>b[i];
ans=(b[1]-48)*1+(b[3]-48)*2+(b[4]-48)*3+(b[5]-48)*4+(b[7]-48)*5+(b[8]-48)*6+(b[9]-48)*7+(b[10]-48)*8+(b[11]-48)*9;
ans%=11;
if (ans==10) ans='X';
if (ans==b[13]) cout<<"Right"<<endl;
else
{
for(int i=1;i<=12;i++)
cout<<b[i];
cout<<ans<<endl;
}
return 0;
}
by metaphysis @ 2022-07-23 15:24:24
@zxy_sh
修改如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int ans=0;
char b[15];
for(int i=1;i<=13;i++)
cin>>b[i];
ans=(b[1]-48)*1+(b[3]-48)*2+(b[4]-48)*3+(b[5]-48)*4+(b[7]-48)*5+(b[8]-48)*6+(b[9]-48)*7+(b[10]-48)*8+(b[11]-48)*9;
ans%=11;
if (ans==10) ans='X';
// !
if (ans==b[13] || ans == b[13] - '0' ) cout<<"Right"<<endl;
else
{
for(int i=1;i<=12;i++)
cout<<b[i];
// !
if (ans == 'X') cout << 'X';
else cout << ans;
cout << endl;
}
return 0;
}
具体为什么,请您自己琢磨一下。
by zxy_sh @ 2022-07-28 10:24:37
@metaphysis 我貌似看懂了,因为数组b[15]是char,而ans是int 对吗