这是一个在聚会和酒桌上常玩的一个小游戏。


游戏规则

所有人围着桌子一个大圈,从“1”开始喊,遇到7、7的倍数或是带7的数字,就敲一下桌子(酒桌上用筷子敲下杯子),以此类推。一旦有人做错了就要接受惩罚。

实现思路

  1. 我们建立一个for循环,让变量在其中不断递增。
  2. 在循环体内部,我们对变量进行判断,若变量上 有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;
}

运行结果

C++实现 || 敲桌子小游戏_for循环