喊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
全部评论

相关推荐

11-06 16:50
门头沟学院 Java
用微笑面对困难:word打字比赛二等奖的我,也要来凑合凑合
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务