AOJ_0226 Hit and Blow

問題
解法
2つの数字を読み込んでから、文字列に変換するとやりやすい。

#include <cstdio>
using namespace std;

char r[5], a[5];
int main(){
	int rd, ad;
	while(scanf("%d %d", &rd, &ad) && rd){
		sprintf(r, "%04d", rd);
		sprintf(a, "%04d", ad);
		int hit = 0, blow = 0;
		for(int i = 0; i < 4; i++){
			if(r[i] == a[i]) hit++;
		}
		for(int i = 0; i < 4; i++){
			for(int j = 0; j < 4; j++){
				if(i==j) continue;
				if(r[i] == a[j])
					blow++;
			}
		}
		printf("%d %d\n", hit, blow);
	}
	return 0;
}