ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

题目18

2022-07-16 18:02:24  阅读:143  来源: 互联网

标签:输出 题目 数字 人喊 18 次数 17 编号


 喊7 是一个传统的聚会游戏
        N个人围成一圈
        按顺时针从1-7编号
        编号为1的人从1开始喊数
        下一个人喊得数字是上一个人喊得数字+1
        但是当将要喊出数字7的倍数或者含有7的话
        不能喊出 而是要喊过

        假定N个人都没有失误。
        当喊道数字k时
        可以统计每个人喊 “过"的次数

        现给定一个长度n的数组
        存储打乱的每个人喊”过"的次数
        请把它还原成正确顺序

        即数组的第i个元素存储编号i的人喊“过“的次数

           输入为1行
           空格分割的喊过的次数
           注意k并不提供

           k不超过200
           数字个数为n
           输出描述

           输出为1行
           顺序正确的喊过的次数  空格分割

           例子
           输入
             0 1 0
           输出
             1 0 0

           只有一次过
           发生在7
           按顺序编号1的人遇到7  所以100
           结束时的k不一定是7 也可以是 8 9
             喊过都是100

             例子
           输入
             0 0 0 2 1
           输出
             0 2 0 1 0
           一共三次喊过
           发生在7 14 17
           编号为2 的遇到7 17
           编号为4 的遇到14
<?php
$s=fgets(STDIN);
solution($s);

function solution($s)
{
    $list=explode(' ',$s);
    $sum=array_sum($list);
    $j=0;
    $res=[];
    //初始化并赋值0
    for($a=0;$a<count($list);$a++) $res[$a]=0;
    for ($i=1;$i<300;$i++,$j++){
        if($j==count($list)) $j=0;
        if($i%7==0||strpos($i.'','7')){
            $res[$j]+=1;
        }
        $sum1=0;
        foreach ($res as $v) $sum1+=$v;
        if($sum==$sum1) break;
    }
    echo implode(' ',$res);
}

 

标签:输出,题目,数字,人喊,18,次数,17,编号
来源: https://www.cnblogs.com/weiguomiao/p/16484792.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有