题目描述
题目解析
思路:
- 先统计一共喊了几次7,然后模拟
#include<bits/stdc++.h>
using namespace std;
void process(std::vector<int> nums){
// 计算所有人喊过的总次数
int count = accumulate(nums.begin(), nums.end(), 0);
// 存放正确的次数
std::vector<int> corrects(nums.size(), 0);
int number = 1; //从1开始叫
while (count > 0){
for (int & correct : corrects) {
// 数字包含7或者能被7整除,就喊“过”,计一次 to_string(number).find('7')
if(number % 10 == 7 || number % 7 == 0){
correct++;
count--;
}
// 如果所有的“过”均已出现,就暂停
if(count == 0){
break;
}
number++;// 数字递增
}
}
std::string sb;
for(auto i : corrects){
sb += to_string(i) + " ";
}
std::cout << sb;
}
int main(int argc, char **argv)
{
process({0, 0, 0, 2, 1});
}