题目描述
输入两个字母串,将两个字母串都包含的字母用'_'替换后,输出两个字母串的剩余部分。
输入描述:
输入两个字符串,字符串最大长度为100。字符串只包含字母,不可能为空串,区分大小写。
输出描述:
按字符串顺序输出处理后的字符串
示例1
输入
abcd
bdef
输出
a_c_
__ef
#include "iostream"
using namespace std;
int main()
{
string a,b;
getline(cin,a);
getline(cin,b);
for(int i=0;i<a.size();i++){
for(int j=0;j<b.size();j++){
if(a[i]==b[j]){
a[i]='_';
b[j]='_';
}
}
}
cout<<a<<'\n'<<b<<endl;
}
题目描述
一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。识别码的计算方法如下:
首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即0×1+6×2+……+2×9=158,然后取158 mod 11的结果4作为识别码。
你的任务是编写程序根据输入的ISBN号码的前3段,计算出识别码,并输出完整的ISBN码。
输入描述:
为一个ASCII字符串。内容为ISBN码的前三段,以上面为例,就是0-670-82162。
输出描述:
若判断输入为合法的字符串,则计算出识别码,并输出完整的ISBN码;
若输入不合法,则输出字符串”ERROR”;
示例1
输入
0-670-82162
输出
0-670-82162-4
#include "iostream"
#include "string"
using namespace std;
int main()
{
string a;
int s=0;
getline(cin,a);
if(a.size()!=11){cout<<"ERROR"<<endl;return 0;
}
for(int i=0;i<11;i++){
if(i==1||i==5){
if(a[i]!='-'){cout<<"ERROR"<<endl;return 0;}
}
else{
if(a[i]>'9'||a[i]<'0') {cout<<"ERROR"<<endl;return 0;}
}
}
for(int i=0;i<a.size();i++){
if(i==0) s+=(a[i]-'0')*(i+1);
else if(i>=2&&i<=4) s+=(a[i]-'0')*i;
else if(i>=6&&i<=10) s+=(a[i]-'0')*(i-1);
}
cout<<a<<"-";
if(s%11==10) cout<<'X'<<endl;
cout<<s%11<<endl;
}
如有错误,欢迎指出