题目18
作者:互联网
喊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