此题然让本人纠结了很久,真的好多坑。。。。果然还是太菜了。

蓝桥杯-ISBN号码-LMLPHP蓝桥杯-ISBN号码-LMLPHP

完整代码以及思路解析(在注释中)

#include <iostream>
using namespace std;
int main()
{
    string num;
    cin>>num;	
	int count=0;
	int w=1;
    for(int i=0;i<=10;i++)
    {
    	if((i!=1)&&(i!=5)) //坑点一:之前一直写的是((i!=1)||(i!=5))还傻乎乎的看不出来,本来就没有一个数即等于1又等于5。
		{
		count+=(num[i]-'0')*w;//坑点二:字符串是ACSII编码形式,要转化
		w++;
		} 
			    
	}
	int ans=count%11;
	 if(ans==10)
	    {
        if(num[12]=='X') cout<<"Right";//如果验证码对了就输出Right
        else {
            num[12]='X';//把验证码改对
            cout<<num;
        }
		}//坑点三:这一步判断漏了
	else {
	if(ans==num[12]-'0')
	cout<<"Right";
	else
	{
	num[12]=ans+'0';//坑点四:记得加回来啊啊啊
	cout<<num;
	}
	}
  }
  
03-12 06:01