灵异代码
  • 板块灌水区
  • 楼主Blamol_Von_Lee
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/12/13 18:13
  • 上次更新2023/12/13 19:14:42
查看原帖
灵异代码
638332
Blamol_Von_Lee楼主2023/12/13 18:13

P1055 [NOIP2008 普及组] ISBN 号码

我的代码一会A一个点,一会A两个点,一会全红,有什么问题吗?

#include<iostream>
#include<cstring>
using namespace std;
int a[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},b[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};;
int main()
{
	string s;
	cin>>s;
	int ans=s.length()-1,sum=0;bool q=false;
	for(int i=0;i<ans;i++)
	{
		if('0'<=s[i]&&'9'>=s[i])
		a[i]=s[i]-'0';
		
	}
	if(s[12]=='X')
		q=true;
	int	w=s[12]-'0';
	int cn=1;
	for(int i=0;i<ans;i++)
	{
		if(a[i]!=-1)
		{
			sum+=a[i]*cn;
			cn++;
		}
	}
	sum%=11;
	if(sum==10)
	{
		if(q==true)
		cout<<"Right";
		else
		{
			for(int i=0;i<ans;i++)
				cout<<s[i];
			cout<<"X";
		}
	}
	else
	{
		if(sum==w)
		{
			cout<<"Right";
		}
		else
		{
			for(int i=0;i<ans;i++)
				cout<<s[i];
			cout<<sum;
		}
		
	}
}
2023/12/13 18:13
加载中...