题目大意:图书的ISBN号有一个丢了,用问号表示丢失的号码,最后一个可以为10用X表示。最后那个编号取{0-10},其他取{0-9}
#include <iostream>
using namespace std;
int main()
{
char is[15];
scanf("%s",is);
int sum=0,index=0;
for(int i=9;i>=0;i--){
if(is[i]=='X'){//不能写is[9]
sum+=10;
continue;
}if(is[i]=='?'){
index=i;
continue;
}
sum+=((is[i]-48)*(10-i));
}
int n=(index==9)?10:9;
int tmp=0,ans=-1;
for(int i=0;i<=n;i++){
tmp=sum+i*(10-index);
if(tmp%11==0){
ans=i;
break;
}
}
if(ans==10)puts("X");
else printf("%d\n",ans);
return 0;
}
本文介绍了一种使用C++编程语言解决图书ISBN号中丢失数字的问题的方法。通过读取输入字符串,计算并填充缺失的ISBN号部分,确保整个ISBN号符合标准格式。算法特别关注处理特殊字符X和?,并最终输出完整的10位或11位ISBN号。

1186

被折叠的 条评论
为什么被折叠?



