2012-05-21 63 views
1

可能重复:
How do I check if a number is a palindrome?在PHP中检查一个整数是否是回文数?

如果一个整数,是不允许被视为一个字符串,类型转换是不允许的,我们怎样才能找出数是否为回文与否(在PHP中)?

我所想出的程序是:

function checkPalindrome($number){ 
    $reverse_number = 0; 
    $number_backup = $number; 
    while($number > 0){ 
     $reverse_number = $reverse_number * 10 + $number % 10; 
     $number /= 10; 
    } 
    return $reverse_number == $number_backup; 
} 

在步骤“$数/ = 10”,生成将不会被整数,其创建问题的结果。

+0

$数=地板($数/ 10); – Robus

+0

哪里有非字符串,无类型转换的约束来自哪里?这是一个[标签:家庭作业]的问题吗? –

+0

这是学校的问题吗?为什么这些限制适用? – DampeS8N

回答

6

如果不允许类型转换和字符串处理是禁止的,你需要做一些额外的计算:

while($number > 0){ 
    $lsd = $number % 10; 
    $reverse_number = $reverse_number * 10 + $lsd; 
    $number = ($number - $lsd)/10; 
} 
+0

太棒了!这解决了这个问题。 – sushil

+1

LSD lol。 (15个字符) –

+0

Cole,*最不重要的数字* :-) –

相关问题