数字を逆にするプログラムを作りましたが、毎回0
結果に追加されます。
$num = 675;
$rev = 0;
while($num > 0) {
$temp = $num % 10;
$rev = ($rev * 10) + $temp;
$num = (int) $num / 10;
}
echo $rev; //result is 5760
数字を逆にするプログラムを作りましたが、毎回0
結果に追加されます。
$num = 675;
$rev = 0;
while($num > 0) {
$temp = $num % 10;
$rev = ($rev * 10) + $temp;
$num = (int) $num / 10;
}
echo $rev; //result is 5760
あなたの問題はこの行です:
$num = (int) $num / 10;
これは次と同じです:
$num = ((int) $num) / 10;
したがって、実際には結果をキャストしません。追加のかっこを使用します。
$num = (int) ($num / 10);
これが完全なコードです。
<?php
$n = 3456;
$reverse = 0;
while ($n > 0)
{
$reverse = $reverse * 10;
$reverse = $reverse + $n%10;
$n = (int)($n/10);
}
echo $reverse;
?>
出力は 6543 になります
phpでできること$rev = (int)strrev($num);
使用方法strrev
:
$>cat r.php
<?php
$num=675;
$rev= (int) strrev("{$num}");
echo "{$num} : {$rev}".PHP_EOL;
?>
$>php r.rev
675 : 576
あなたはこれであなたの目標を達成できます...
$num = 675;
$num_array = str_split($num);
$final_num_array = array_reverse($num_array);
$rev_num = implode("",$final_num_array);
次のようなことを試すことができます:
<?php
$num = 675;
$strNum = (string) $num;
$revStrNum = strrev($strNum);
$revNum = (int) $revStrNum;
echo $revNum; //Output 576 when I tried it
?>
注意、文字列関数strrev()を利用しました
これは私がオンラインで見つけたナンバーリバーサーです:
<?php
$num=6541020;
$revnum=0;
do{
$revnum=($revnum *10)+($num % 10);
$num=(int)($num / 10 );
}while($num>0);
echo $revnum;
?>
ソース: http://www.weberdev.com/get_example.php3?ExampleID=4879
$num = 675; $rev = 0;
while($num > 1) { //do $num value lent-1
$temp = intval($num) % 10;
$rev = intval($rev) * 10 + $temp;
$num = intval($num)/ 10;
}
echo $rev;