不知道大家有没有玩过这个“逢7过”的这个游戏呢?游戏规则:从1开始依次每个人喊一个数字,如果数字含有7或者是7的倍数,就必须喊“过”,不能喊出这个数字。那作为一名小小码农,可以做一个电子小抄,保证我们不用受罚~
分析:
我们按照1~100这一个区间分析,那我们会出现两种种情况:
①这个数是7的倍数
②这个数里含有7这个数字
对于情况①,我们可以通过 (%)取余运算作判断,如果这个数字取余后为0,那它就是7
的倍数;
对于情况②,也可以通过取余方式获取其个位、十位两个位置的数字,并与7做比较,看一下是否含有7这个数字;
对于规则而言,以上两种情况出现任意一次,就需要喊“过”,所以我们可以用到 ( || )或运算。
------ 思考一下 动手做一做 再往下翻翻看------
代码:
#include <iostream>
using namespace std;
int main() {
int k ;
for(k=1; k<101; k++){
if((k % 7 == 0) || (k % 10 == 7) || (k / 10 == 7)){
cout << "过" << endl;
}else{
cout << k << endl;
}
}
system("pause");
return 0;
}
运行结果:
那让我们对这个游戏升级一下。每个玩家要给下一个玩家出题,例如,喊4(按顺序)+9(随机喊)。如果这两个数字之和不是7的倍数,或者没有含有7,那么玩家就要先喊出那个数字,然后给下一个玩家出题;如果有,就喊过。
(测试数据范围1~10)
代码:
#include <iostream>
using namespace std;
#include <ctime>
int main() {
for (int k = 1; k < 11; k++) {
int y = rand() % 100;
cout << "当前数为" << k << "加入随机数" << y << endl;
int a = k + y;
if ((a % 7 == 0) || (a % 10 == 7) || (a / 10 == 7)) {
cout << "过" << endl;
}
else {
cout << a << endl;
}
}
system("pause");
return 0;
}
运行结果: