一道錯誤答案傳遍全網(wǎng)的邏輯面試題

答對三道題或三道題以上的人算及格,那么在這100人中至少有多少人及格呢?


可以得到如下結(jié)論:
同時做對AB兩題的最少有72人,最多有81人 同時做錯AB兩題的最多有9人,最少有0人



極限法思維


先不跟你扯,咱們進一步思考,這個反例說明了一點:錯題不能隨意均攤,那就從這點下手。

第一種分配:
將A,B,C分配給7人 將C,D,E分配給2人 將B,D,E分配給1人



將錯題從大到小排序 每次將最大的前3個分配給一人,然后重新排序
你品,你細品,這是不是同一個問題呀。所以要從最高的前3個開始一點一點的削它,哈哈。


int main() {
int a[5], ans = 0;
for (int i = 0; i < 5; ++i) {
cin >> a[i];
}
sort(a, a + 5, compare);
while (a[2] > 0) {
a[0]--;
a[1]--;
a[2]--;
sort(a, a + 5, compare);
ans++;
for (int i = 0; i < 5; ++i) {
cout << a[i] << " ";
}
cout << endl;
}
cout << "ans=" << ans << endl;
return 0;
}

25 20 18 15 9
24 19 17 15 9
23 18 16 15 9
22 17 15 15 9
21 16 15 14 9
20 15 14 14 9
19 14 14 13 9
18 13 13 13 9
17 13 12 12 9
16 12 12 11 9
15 11 11 11 9
14 11 10 10 9
13 10 10 9 9
12 9 9 9 9
11 9 9 8 8
10 8 8 8 8
9 8 8 7 7
8 7 7 7 7
7 7 7 6 6
6 6 6 6 6
6 6 5 5 5
5 5 5 5 4
5 4 4 4 4
4 4 4 3 3
3 3 3 3 3
3 3 2 2 2
2 2 2 2 1
2 1 1 1 1
1 1 1 0 0
0 0 0 0 0
ans=30


評論
圖片
表情

