【问题标题】:Lottery Coupons: count number of maximum winners彩票优惠券:计算最大中奖者的数量
【发布时间】:2022-07-14 12:20:58
【问题描述】:

有一张彩票,有 n 张优惠券,有 n 个人参加。每个人只挑选一张优惠券。优惠券从 1 到 n 连续编号,n 是最大票号。彩票中奖者是任何拥有一张优惠券上的数字之和等于 s 的人。如果有多个获奖者,奖金将在他们之间平分。确定有多少个 s 值,其中至少有一个获胜者并且奖金由大多数人平分。

例子

n = 12

从 1 到 nis [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 生成的优惠券编号列表。数字之和为 [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3]。获胜者的最大数量是 2,这将出现在编号为 [1, 10]、[2, 11] 和 [3, 12] 的优惠券上。对于这 3 个可能的 s 值中的任何一个,可能的获胜者的最大数量都会出现,因此答案是 3。

【问题讨论】:

    标签: php


    【解决方案1】:
    <?php
        $arr = array();
    
        $lenArr = array();
        for($j = 1; $j < 12; $j++) {
            $sum = 0;
            $j = (String)$j;
            for ($i = 0; $i < strlen((String)$j); $i++) {
                $sum += $j[$i];
            }
            
            if(!isset($arr[$sum])) {
                $arr[$sum] = 1;
            } else {
                $arr[$sum]++;
            }
        }
        
        $max = max($arr);
        $returnVal = 0;
        foreach($arr as $key => $value) {
            if($max == $value) {
                $returnVal++;
            }
        }
        return $returnVal;
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多