题目描述
珠玑妙算(Mastermind)是一种猜谜游戏。
在游戏开始前,系统会生成一个十进制的四位整数(每一位数字都不相同)作为谜底。玩家需要提供一个十进制的四位整数(每一位数字也都不相同)作为解答。
对于给定的解答,请统计谜底中有多少既被猜中了数字也被猜中了位置(称这种情况为完全猜中),有多少只猜中了数字但没猜中位置(称这种情况为部分猜中)。
输入格式
第一行:一个四位整数 a 表示谜底。
第二行:一个四位整数 b 表示解答。
输出格式
第一行:单个整数,表示完全猜中的数量;
第二行:单个整数,表示部分猜中的数量。
样例数据
输入:
5678
8671
输出:
2
1
说明:
6与7为完全猜中,8为部分猜中
题解
本题关键点:可以把四位整数作为字符串,然后进行每一位判断是比较简洁的。代码如下。
#include <iostream>
#include <string>
using namespace std;
int main(){
string a;
string b;
int f,p;
f=0;
p=0;
cin>>a>>b;
for(int i=0;i<a.size();i++){
for(int j=0;j<b.size();j++){
if(a[j]==b[i]){
if(j==i){
f++;
}else{
p++;
}
}
}
}
cout<<f<<endl;
cout<<p<<endl;
return 0;
}