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; }