蠻力法找假金幣
#include <iostream> using namespace std; bool notFalseGold(int i, int *num, char op) { bool found = false; for (int j = 1; j <= num[0] * 2; j++) { if (num[j] == i) { found = true; break; } } if (found && op == '=' || !found && op != '=' ) return false; else return true; } int main() { int number[101][1001];//行表示編號,列表示數據 char op[101]; //對比的結果:< > =這三種 int n, k; cin >> n >> k; for (int i = 0; i < k; i++) { cin >> number[i][0];//0號存兩邊的砝碼個數 for (int j = 1; j <= number[i][0] * 2; j++) { cin >> number[i][j]; } cin.get();//吸收回車符 cin >> op[i];//讀取比較的結果 } int t, i, no; for (t = 0, i = 1; i <= n; i++) { int j; for (j = 0; j < k && notFalseGold(i, number[i], op[j]); j++) { ;//此處隻是分號 } if (j < k) continue; t ++; //可能的假金幣加1 if (t > 1) break;//如果存在多個假的,那就不符合條件 else no = i;//記下假金幣的編號 } if (t == 1) { cout << no << endl; } else { cout << 0 << endl; } return 0; }
最後更新:2017-04-02 15:15:28