songyuexuan @ 2022-02-09 15:49:23
为何输入样例也会全错!!!求大神指点!
输入样例1: 结果:0-670-82162-2
输入样例2: 结果:0-670-82162-6
代码如下:
#include<iostream>
#include<cstring>
using namespace std;
int main(){
char a[1001];
int sum=0,s=0;
//sum为记录-号数量的变量,s是记录和的变量
cin>>a;
for(int i=0;i<strlen(a);i++){
if(a[i]=='-') sum++;
s+=(a[i]-'0')*(i+1-sum);
}
if(a[strlen(a)-1]==s%11) {
cout<<"Right";
return 0;
}
for(int i=0;i<strlen(a)-1;i++){
cout<<a[i];
}
cout<<s%11;
return 0;
}
(我英语不好,用的都是a,b之类的变量,全靠理解)
by qjxqjxqjx @ 2022-02-09 17:42:08
@songyuexuan
#include<iostream>
#include<cstring>
char a[1001];
using namespace std;
int main()
{
int sum=0,s=0;
cin>>a;
for(int i=0;i<strlen(a)-1;i++)
{
if(a[i]=='-') sum++;
else s+=(a[i]-'0')*(i+1-sum);
}
if(a[strlen(a)-1]=='X')
{
if(s%11==10){
cout<<"Right";
return 0;
}
}
if(a[strlen(a)-1]-'0'==s%11)
{
cout<<"Right";
return 0;
}
for(int i=0;i<strlen(a)-1;i++)
cout<<a[i];
if(s%11==10)
cout<<"X";
else
cout<<s%11;
return 0;
}
by songyuexuan @ 2022-02-10 18:02:14
@qjxqjxqjx 谢谢大神