B的部分
n: 設定完答案後輸入的數字, a: 一開始設定的標準答案
totb = (n1 != a1 && ((n1 == a2 && n2 != a2) || (n1 == a3 && n3 != a3) || (n1 == a4 && n4 != a4)))
+ (n2 != a2 && ((n2 == a1 && n1 != a1) || (n2 == a3 && n3 != a3) || (n2 == a4 && n4 != a4)))
+ (n3 != a3 && ((n3 == a1 && n1 != a1) || (n3 == a2 && n2 != a2) || (n3 == a4 && n4 != a4)))
+ (n4 != a4 && ((n4 == a1 && n1 != a1) || (n4 == a2 && n2 != a2) || (n4 == a3 && n3 != a3)));
-------------------------------------------------------------------------------------------------------------------
完整程式碼
#include<iostream>
using namespace std;
int main()
{
int n, tota, totb; // total a, total b
char n1, n2, n3, n4, a1, a2, a3, a4; // a: answer
while (cin >> a1 >> a2 >> a3 >> a4) {
cin >> n;
while (n--) {
cin >> n1 >> n2 >> n3 >> n4;
tota = (n1 == a1) + (n2 == a2) + (n3 == a3) + (n4 == a4);
totb = (n1 != a1 && ((n1 == a2 && n2 != a2) || (n1 == a3 && n3 != a3) || (n1 == a4 && n4 != a4)))
+ (n2 != a2 && ((n2 == a1 && n1 != a1) || (n2 == a3 && n3 != a3) || (n2 == a4 && n4 != a4)))
+ (n3 != a3 && ((n3 == a1 && n1 != a1) || (n3 == a2 && n2 != a2) || (n3 == a4 && n4 != a4)))
+ (n4 != a4 && ((n4 == a1 && n1 != a1) || (n4 == a2 && n2 != a2) || (n4 == a3 && n3 != a3)));
cout << tota << "A" << totb << "B\n";
}
}
}
題目:這時候要是有辦法知道目前嘗試的密碼錯了幾個字,那解鎖的速度就快多了。
請寫一個程式,可以判斷每組數字跟正確答案差了幾個字。
程式有去除A影響沒去除B影響。
採用規則與題目要求有點差異,B部份可能多算。