这是一个在聚会和酒桌上常玩的一个小游戏。
游戏规则
所有人围着桌子一个大圈,从“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;
}运行结果











