喊7的次数重排
标题:喊7的次数重排 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
喊7是一个传统的聚会游戏,N个人围成一圈,按顺时针从1到N编号。编号为1的人从1开始喊数,下一个人喊的数字为上一个人的数字加1,但是当将要喊出来的数字是7的倍数或者数字本身含有7的话,不能把这个数字直接喊出来,而是要喊"过"。假定玩这个游戏的N个人都没有失误地在正确的时机喊了"过",当喊到数字K时,可以统计每个人喊"过"的次数。
nums = list(map(int, input().split()))
count = sum(nums)
num = 6
cur = 0
while cur < count:
num += 1
if num % 7 == 0&nbs***bsp;'7' in str(num):
cur += 1
arr = [0] * len(nums)
for i in range(1, num + 1):
if i % 7 == 0&nbs***bsp;'7' in str(i):
arr[i % len(nums) - 1] += 1
print(' '.join(list(map(str, arr))))
import java.util.Scanner;
/**
* @author 刘骋
* @description:
* @date 2021/10/21 18:03
*/
public class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
String row_array= sc.nextLine();
//判断喊了几次
String[] array= row_array.split(" ");
int length= array.length;
int count=0;
for (int i=0;i<length;i++){
count += Integer.parseInt(array[i]);
}
int[] result= new int[length];
int mid= 0;
int test=0;
while (true){
test++;
String code=test+"";
if (test%7==0||code.contains("7")){
mid++;
}
if (mid==count){
break;
}
}
for (int i=1;i<=test;i++){
if (i%7==0||(i+"").contains("7")){
result[(i-1)%length]=result[(i-1)%length]+1;
}
}
for (int i:result){
System.out.print(i+" ");
}
}
}
//manfen

