一开始的时候有一个正整数,接下来双方轮流执行以下操作:把这个正整数按照加法的逆运算任意拆为两个正整数,由另一方选择一个保留,并把保留的这个数再次拆为两个正整数。依次这样下去,直到有一方无法再完成拆数的操作时告负。
你是要模拟这个游戏么?参考下:
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入一个正整数:";
cin >> num;
int player = 1; // 当前玩家,1代表玩家1,2代表玩家2
while (num > 0) {
cout << "现在是玩家" << player << "的回合,请拆分数字:" << num << endl;
int a, b;
cout << "请输入两个正整数,中间用空格隔开:";
cin >> a >> b;
// 检查拆分是否合法
if (a <= 0 || b <= 0 || a + b != num) {
cout << "拆分不合法,请重新输入!" << endl;
continue;
}
// 让另一个玩家选择保留的数
cout << "请玩家" << (player == 1 ? 2 : 1) << "选择保留的数:";
int reserve;
cin >> reserve;
// 检查保留的数是否合法
if (reserve < a || reserve > b) {
cout << "保留的数不合法,请重新选择!" << endl;
continue;
}
// 更新剩余数字
num = reserve;
// 切换玩家
player = (player == 1 ? 2 : 1);
}
// 当有一方无法再完成拆数操作时,告负
cout << "玩家" << player << "告负!" << endl;
return 0;
}
设关系模式R(A,B,C),F是R上成立的FD集,F={A→B,C→B},ρ={AB,AC}是R的一个分解,那么分解ρ( )?
正确答案:C你的答案:A(错误)
( A ) 保持函数依赖集F
( B ) 丢失了A→B
( C ) 丢失了C→B
( D ) 丢失了B→C
牛客网这个题目,在你看完本文以后应该就会解,算是最简单的。