#PHP0027. 计算数的各位之和

计算数的各位之和

题目描述

给定一个4位正整数nn,请编写程序计算并输出该数字每个位上数字的和。

输入格式

一个4位正整数 nn

输出格式

输出一个整数,表示输入数字各位上数字的总和。

1234
10

数据规模与约定

对于 100%100\% 的数据,1000n99991000 \le n \le 9999

代码提示

要解决这个问题,你需要理解取余操作(%)和整数除法在处理数字时的作用。在PHP中,这两个操作让我们能够分别访问和处理数字的各个位。

  • ​取余操作 (%):这个操作帮助我们获得数字的最低位(即个位)。例如,如果有一个数字 $n = 1234,那么 $n % 10 的结果是 4。取余操作通过返回除法运算后的余数,让我们可以直接得到数字的最后一位。
  • 整数除法​:在PHP中,可以使用整除运算符 intdiv()(PHP 7.0及以上版本),或者使用普通的除法后配合 floor() 函数来实现整数除法。这个操作帮助我们去掉数字的最低位,也就是说,它可以将数字向右移动一位。继续使用上面的例子,如果使用 intdiv($n, 10) 或等效的 floor($n / 10)(对于早期PHP版本),结果是 123。通过整数除法,我们可以移除当前的个位数字,使之后的取余操作可以访问下一个位上的数字。

结合使用这两种操作,你可以从右到左遍历数字的每一位,并对这些位执行所需的计算。

示例代码片段(使用PHP)

假设你已经有了一个4位的正整数 $n:

<?php
// 初始化总和变量
$sum = 0;

while ($n > 0) {
    // 获取当前最低位上的数字
    $digit = $n % 10;
    
    // 做一些操作,比如累加
    $sum += $digit;
    
    // 移除当前最低位
    $n = intdiv($n, 10); // 或者对于PHP7.0以下版本: $n = floor($n / 10);
}
?>

在这个循环中,每一次迭代都会处理数字的一位——从最右边(个位)开始,直到所有位都被处理完毕。这种方法不仅适用于4位数,也适用于任何长度的数字。