POJ3589 Number-guessing Game

题意

这个题的意思是说:
求问给出两个四位数,问相同位置相同的有几位,不同位置相同的有几位,最后用*A*B的形式打印出来

思路

用字符数组去接几个数字,这样不用分离各位,然后得到各位数字的方法如下:
char s[4];
int num[4];
for(int i=0;i<4;i++) num[i]=s[i]-‘0’; ASCII值的方法

最后把两个数的各位做一次二重循环比较即可

代码

#include <iostream>
using namespace std;
void Judge(char *s1,char *s2){ //判断并输出结果
    int num1[4],num2[4],a=0,b=0,i; 
    for(i=0;i<4;i++){
        num1[i]=s1[i]-'0';
        num2[i]=s2[i]-'0';
    }
    for(i=0;i<4;i++){
        for(int j=0;j<4;j++){
            if(num1[i]==num2[j] && i!=j){
                b++;
            }
            else if(num1[i]==num2[i] && i==j){
                a++;
            }
        }
    }
    cout<<a<<"A"<<b<<"B"<<endl;
}
int main(){
    int n;
    char s1[5],s2[5];//这个地方开始也是醉了,内存不够导致错误+_+
    cin>>n;
    while(n--){
        cin>>s1>>s2;
        Judge(s1,s2);
    }
    return 0;
}

你可能感兴趣的:(游戏,poj,ASCII)