题目:
回答:
#include <iostream>
using namespace std;
class People; //甲乙丙丁四人
class People {
public:
void sayNumber(int num);
bool isSeven(int num);//判断是否为7、7倍数、含有7
int getCount();//获得现在报数
int getJump();//获得此人跳过格数
private:
int jump = 0;//此人跳过的格数
static int count;//所有人一共报的数
};
int People::count = 0;
bool People::isSeven(int num) {
if (num % 7 == 0)
return true;
int flag = num;
for (int i = 1;; i++) {
if (flag % 10 == 7) {
return true;
}
flag = flag / 10;
if (flag == 0) {
break;
}
}
return false;
}
void People::sayNumber(int num) {
if (isSeven(num)) {
jump++;
}
else {
count++;
}
}
int People::getJump() {
return jump;
}
int People::getCount() {
return count;
}
int main() {
People jia, yi, bing, ding;
int num;
cin >> num;
for (int i = 1;; i=i+4) {
jia.sayNumber(i);
if (jia.getCount() == num)
break;
yi.sayNumber(i + 1);
if (yi.getCount() == num)
break;
bing.sayNumber(i + 2);
if (bing.getCount() == num)
break;
ding.sayNumber(i + 3);
if (ding.getCount() == num)
break;
}
cout << jia.getJump() << endl;
cout << yi.getJump() << endl;
cout << bing.getJump() << endl;
cout << ding.getJump() << endl;
return 0;
}