这是一个在聚会和酒桌上常玩的一个小游戏。
游戏规则
所有人围着桌子一个大圈,从“1”开始喊,遇到7、7的倍数或是带7的数字,就敲一下桌子(酒桌上用筷子敲下杯子),以此类推。一旦有人做错了就要接受惩罚。
实现思路
- 我们建立一个for循环,让变量在其中不断递增。
- 在循环体内部,我们对变量进行判断,若变量上 有7 or 是7的倍数,则敲桌子。
代码实现
//测试范围:1 ~ 100
#include <iostream>
using namespace std;
#define KEY 7
#define MIN 1
#define MAX 100
#define PINT "敲桌子"
bool TestKey(int key, int i)
{
if(key == i)//检测i == key == 0的情况
{
return true;
}
while (i != 0)
{
if (key == i % 10)
{
return true;
}
i /= 10;
}
return false;
}
bool TestMul(int key, int i)
{
if (i % key == 0)
{
return true;
}
return false;
}
int main()
{
int i = 0;
int min = MIN;
int max = MAX;
int key = KEY;
bool flag = false;
for (i = MIN; i < max || i == max; i++, flag = false)
{
//1.检测是否含有关键数
flag = TestKey(key, i);
//2.检测是否为关键数的倍数
if (key != 0)//0不能为被除数,所以若key == 0,我们不进入倍数判断
{
flag = TestMul(key, i);
}
if (flag == false)
{
cout << i << endl;
}
else
{
cout << PINT << endl;
}
}
return 0;
}