Miracle_InDream @ 2023-10-28 22:23:28
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,c="";
cin>>a;
int l=0,l1=a.length();
for(int i=0;i<a.length();i++)
{
if(a[i]!='-')
{
c+=a[i];
}
l++;
}
int b[l];
int ans=0;
for(int i=0;i<l;i++)
{
b[i]=c[i]-48;
b[i]=b[i]*i+1;
ans+=b[i];
}
if(a[l1-1]-48==ans%11)
{
cout<<"Right";
}
else if(a[l1-1]-48=='X'&&ans%11==10)
{
cout<<"Right";
}
else
{
cout<<a;
cout<<'\b';
if(ans%11!=10)
{
cout<<ans%11;
}
else
{
cout<<'X';
}
}
return 0;
}
by Ace_FutureDream @ 2023-10-29 07:18:47
@shooting__star
给个建议,样例不过自己手动模拟下,不要以不会就发帖,发完贴别人给你解答都是别人的,不是你的,手动模拟电脑运行样例不就好了?你别告诉我你这都不会......还有你的码风很清奇......
AC:
#include<bits/stdc++.h>
using namespace std;
int b[20];//你这不怕编译出错?还有为啥不定义在外面......
int main()
{
string a,c="";
cin>>a;
int l=0,l1=a.length();
for(int i=0;i<a.length()-1;i++)//你为什么不替换为l1?还有最后一位不能识别进c里面
{
if(a[i]!='-')
{
c+=a[i];
l++;//l肯定是加在里面的啊
}
}
int ans=0;
for(int i=0;i<l;i++)
{
b[i]=c[i]-'0';//减0不就好了,不用去记编码的,还容易错
b[i]=b[i]*(i+1);
ans+=b[i];
}
if(a[l1-1]-'0'==ans%11)
{
cout<<"Right";
}
else if(a[l1-1]=='X'&&ans%11==10)//这里不用-48,因为他本身就是X你还减会对就怪了
{
cout<<"Right";
}
else
{
for(int i=0;i<l1-1;i++){
cout<<a[i];
}
//你输出制表符干嘛?
if(ans%11!=10)
{
cout<<ans%11;
}
else
{
cout<<'X';
}
}
return 0;
}