You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不使用字符串计算数组元素首位数字之和,str_split是否被禁止?

疑问解答

是的,str_split 属于典型的字符串处理函数,你当前的实现逻辑是将数字隐式转换为字符串后拆分取首字符,完全不符合「不使用字符串操作」的要求,需要替换为纯数学运算的实现方案。

正确实现逻辑

不使用字符串的前提下,提取正整数首位数字的数学逻辑非常简单:

  • 对于任意正整数,只要数值大于等于10,就不断除以10后取整,直到得到的结果小于10,这个结果就是该数字的首位数字
  • 举例:25除以10取整得2(小于10,首位为2);123除以10取整得12,再除以10取整得1(小于10,首位为1)

符合要求的代码实现

public function pom() {
    $array = [25, 12, 5, 82, 15];
    $result = 0;
    foreach ($array as $num) {
        $first = $num;
        while ($first >= 10) {
            $first = intval($first / 10);
        }
        $result += $first;
    }
    return $result;
}

代码说明

  • 全程没有使用任何字符串相关函数,完全通过除法、取整运算实现需求
  • 用foreach遍历数组比手动控制下标遍历更简洁,也避免了原代码中每次循环都调用count()的性能损耗
  • 对单数字元素(比如示例中的5)可以直接命中逻辑,不需要额外做边界判断

内容的提问来源于stack exchange,提问作者daredareize

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:15:04