韶华将逝,雄心未已;欲与众君,共习此技.

将一个数字的十位和个位对调

上一篇 / 下一篇  2007-06-28 17:34:17 / 天气: 晴朗 / 心情: 平静 / 个人分类:PHP & MySQL

看到《将一个数字十位个位对调及所想到的》这篇文章。没有考虑作者的思路,自己先写了一下代码
 
$num = ($num%10)*10+($num-($num%10))/10;
 
应该是最直接的方法,将个位数用取余运算得出,再将个位数减掉后被10整除得到十位数。
 
原文中所说的“ba = ( ab - (ab/10) ) * 10 + (ab/10)”方法叫人看不太懂,试验过后也无法得出正确的解答。但想来大概是笔误,将/写做了%,而且个位和十位的处理颠倒了。
 
至于后面说的那龇椒ā? (ab/10) + (ab-(ab/10)*10) ) * 10 + ( (ab/10) + (ab-(ab/10)*10) ) - ab”,结果也是不对。大概又是哪里写差了。
 
很简单的一个问题。初学者不妨自己也动手做一下。
 
另外又尝试写了一个通用的整数对调程序。贴出来参考一下:
 
<?php
 $number = 123456789;
 echo 'original number: '.$number.'<br />';
 
 echo 'digitExchangeCommon: '.digitExchangeCommon($number);
 function digitExchangeCommon($num)
 {
  $numNew = 0;
  while ($num>0)
  {
   $numNew *= 10;
   $numNew += $num%10;
   $num = (int)(($num-$num%10)/10);
  }
  return $numNew;
 }
?>
 
原数末尾为0的话,输出的数值会少一位,因为第一位是0。也就不考虑了。需要的话可以在做一下判断,在输出数值之前加0。

相关阅读:

TAG: 算法 数字 十位 个位 对调

引用 删除 路人甲   /   2007-08-06 19:10:01
你俩的思路我都能看懂啊,都对不过都不全面。
一个从个位入手,一个从十位入手,但是如果原数字大于99,就都错了
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

数据统计

  • 访问量: 73370
  • 日志数: 265
  • 书签数: 19
  • 建立时间: 2007-05-03
  • 更新时间: 2008-04-15

RSS订阅

Open Toolbar