2

数字を逆にするプログラムを作りましたが、毎回0結果に追加されます。

$num = 675;
$rev = 0;

while($num > 0) {
$temp = $num % 10;
$rev = ($rev *  10) + $temp;
$num = (int) $num / 10;
}

echo $rev;   //result is 5760
4

10 に答える 10

8

あなたの問題はこの行です:

$num = (int) $num / 10;

これは次と同じです:

$num = ((int) $num) / 10;

したがって、実際には結果をキャストしません。追加のかっこを使用します。

$num = (int) ($num / 10);
于 2012-05-17T11:34:35.690 に答える
6

これが完全なコードです。

<?php
$n = 3456;
$reverse = 0;
while ($n > 0)
{
  $reverse = $reverse * 10;
  $reverse = $reverse + $n%10;
  $n = (int)($n/10);
}
echo $reverse;
?>

出力は 6543 になります

于 2013-01-16T04:33:12.907 に答える
3

phpでできること$rev = (int)strrev($num);

于 2012-05-17T11:34:59.257 に答える
1

使用方法strrev

$>cat r.php
<?php
$num=675;

$rev= (int) strrev("{$num}");

echo "{$num} : {$rev}".PHP_EOL;
?>

$>php r.rev
675 : 576
于 2015-03-16T13:24:27.623 に答える
1

あなたはこれであなたの目標を達成できます...

$num = 675;
$num_array = str_split($num);
$final_num_array = array_reverse($num_array);
$rev_num = implode("",$final_num_array);
于 2012-05-17T11:33:10.603 に答える
1

次のようなことを試すことができます:

<?php
    $num = 675;
    $strNum = (string) $num;
    $revStrNum = strrev($strNum);
    $revNum = (int) $revStrNum;
    echo $revNum; //Output 576 when I tried it
?>

注意、文字列関数strrev()を利用しました

于 2012-05-17T11:34:31.573 に答える
0

これは私がオンラインで見つけたナンバーリバーサーです:

<?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

于 2012-05-17T11:38:03.643 に答える
0

$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; 
于 2013-07-05T08:39:20.863 に答える