題目描述
輸入兩個字母串,將兩個字母串都包含的字母用'_'替換后,輸出兩個字母串的剩余部分。
輸入描述:
輸入兩個字符串,字符串最大長度為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; }
如有錯誤,歡迎指出