web-dev-qa-db-ja.com

PHP

PHPで数値のすべての数字の合計を見つけるにはどうすればよいですか?

25
Leticia Meyere
array_sum(str_split($number));

これは、数値が正であることを前提としています(より正確には、$numberを文字列に変換すると、数字しか生成されません)。

101
Artefacto

Artefactosメソッドは明らかに無敵ですが、ここでは「手動」で実行できるバージョンを示します。

$number = 1234567890;
$sum = 0;
do {
    $sum += $number % 10;
}
while ($number = (int) $number / 10);

これは実際にはArtefactosメソッドよりも高速です(少なくとも1234567890)、2つの関数呼び出しを保存するため。

13
NikiC

別の方法、それほど速くなく、単一ラインではない単純な

<?php

    $n = 123;
    $nstr = $n . "";

    $sum = 0;
    for ($i = 0; $i < strlen($nstr); ++$i)
    {
        $sum += $nstr[$i];
    }
    echo $sum;

?>

また、数値が正であると想定しています。

4
BrunoLM

正規表現に興味がある場合:

array_sum(preg_split("//", $number));
0
itsazzad
 function addDigits($ num){
 
 if($ num%9 == 0 && $ num> 0){
 return 9; 
} else {
 return $ num%9; 
} 
} 

o(n)のみ

leetCodeでの送信結果:実行時間:4ミリ秒、Add DigitsのPHPオンライン送信の92.86%より高速。メモリ使用量:14.3 MB、Add DigitsのPHPオンライン送信の100.00%未満。

0
Aries
    <?php
echo"----Sum of digit using php----";
echo"<br/ >";
$num=98765;
$sum=0;
$rem=0;
for($i=0;$i<=$num;$i++)
{
$rem=$num%10;
$sum=$sum+$rem;
$num=$num/10;
}
echo "The sum of digit 98765 is ".$sum;
?>
-----------------Output-------------
----Sum of digit using php----
The sum of digit 98765 is 35
0
Ashutosh Verma

次のコードを試してください:

<?php

$num = 525;
$sum = 0;

while ($num > 0)
{
    $sum= $sum + ($num % 10);
    $num= $num / 10;
}
echo "Summation=" . $sum;

?>
0
Mayank Dudakiya
// math before code 

// base of digit sums is 9 

// the product of all numbers multiplied by 9 equals 9 as digit sum

$nr = 58821.5712; // any number

// Initiallization 

$d = array();

$d = explode(".",$nr); // cut decimal digits

$fl = strlen($d[1]); // count decimal digits

$pow = pow(10 ,$fl); // power up for integer

$nr = $nr * $pow; // make float become integer

// The Code

$ds = $nr % 9; // modulo of 9 

if($ds == 0) $ds=9; // cancel out zeros

echo $ds;
0
stereoIII6

数値の数字の合計を求めたいとします。たとえば、2395最も簡単な解決策は、最初に数字を分割し、合計を見つけてから、すべての数字を1つの数値に連結することです。

<?php
    $number=2;
    $number1=3;
    $number2=9;
    $number3=5;
    $combine=$number.$number1.$number2.$number3;
    $sum=$number+$number1+$number2+$number3;
    echo "The sum of $combine is $sum";
     ?>
0
Chandan Baruah