#include #include #include bool canWinNim(int n) { // 如果石头数量是4的倍数,先手必输 // 否则先手必胜 return n % 4 != 0; } int main(void) { // 测试用例1: n = 4, 期望输出: false int n1 = 4; bool result1 = canWinNim(n1); printf("石头数量 %d: %s\n", n1, result1 ? "true (能赢)" : "false (不能赢)"); // 测试用例2: n = 1, 期望输出: true int n2 = 1; bool result2 = canWinNim(n2); printf("石头数量 %d: %s\n", n2, result2 ? "true (能赢)" : "false (不能赢)"); // 测试用例3: n = 2, 期望输出: true int n3 = 2; bool result3 = canWinNim(n3); printf("石头数量 %d: %s\n", n3, result3 ? "true (能赢)" : "false (不能赢)"); // 额外测试用例 int n4 = 3; bool result4 = canWinNim(n4); printf("石头数量 %d: %s\n", n4, result4 ? "true (能赢)" : "false (不能赢)"); int n5 = 5; bool result5 = canWinNim(n5); printf("石头数量 %d: %s\n", n5, result5 ? "true (能赢)" : "false (不能赢)"); return 0; }