AnionicCr @ 2024-11-04 22:13:32
我已经尽己所能将代码最简化了,但是4个TLE 3个WA,求大神指教
#include <stdio.h>
int main()
{
char n[10]={0};
int sum=0;
for(int i=0;i<10;i++)
{
scanf("%c",&n[i]);
if(n[i]>='0'&&n[i]<='9')
{
continue;
}
else
i--;
}
for(int j=0;j<9;j++)
{
sum=sum+(n[j]-48)*(j+1);
}
if((sum%11)==n[9]-48)
{
printf("Right");
}else
{
printf("%c-%c%c%c-%c%c%c%c%c-%d\n", n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], sum%11);
}
return 0;
}
by tengyuxuan @ 2024-11-09 22:05:17
#include <bits/stdc++.h>
using namespace std;
int main(){
char c;
int sum=0,d=INT_MAX,x=1;
string s;
getline(cin,s);
for(int i=1;i<=11;i++){
if(s[i-1]!='-'){
sum+=(s[i-1]-48)*x;
x++;
}
}
if(sum%11!=10){
d=(int) s[12]-48;
}
if((sum%11!=10&&sum%11==d)||d==INT_MAX&&sum%11==10&&s[12]=='X'){
cout<<"Right";
}
else if(sum%11==10&&d==INT_MAX){
for(int i=0;i<=11;i++){
cout<<s[i];
}
cout<<'X';
}else{
for(int i=0;i<=11;i++){
cout<<s[i];
}
cout<<sum%11;
}
return 0;
}