CSP CCF 201312-2 ISBN号码 C++满分题解
2023-12-29 19:46:34
解题思路:
1.用一个int数组单独存储每个数字;用char数组存储原始标识符串,方便输出
2.计算后得到标识码,判断是否正确
#include<iostream>
using namespace std;
int main()
{
int num[15]; //存储每个位置的数
char arr[15]; //原始标识符
int pos=0; //num存入的位置
for(int i=0;i<12;i++)
{
char x;
cin>>x;
arr[i]=x; //存入原始字符
int t=x-'0';
if((t>=0&&t<=9)) //如果是数字
{
num[pos]=t; //存入数字数组
pos++; //位置向后一位
}
}
char isbn; //标识码
cin>>isbn; //单独输入标识码
int sum=0;
for(int i=0;i<9;i++) //计算标识码
{
sum+=num[i]*(i+1);
}
sum=sum%11;
if(sum==10)
{
if(isbn=='X')
{
cout<<"Right";
}
else
{
for(int i=0;i<12;i++)
{
cout<<arr[i];
}
cout<<'X';
}
}
else
{
int t=isbn-'0';
if(sum==t)
{
cout<<"Right";
}
else
{
for(int i=0;i<12;i++)
{
cout<<arr[i];
}
cout<<sum;
}
}
return 0;
}
文章来源:https://blog.csdn.net/qq_73936405/article/details/135276522
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!