返回信息流判断一个整数是不是回文,用递归:
boolean isPalindrome(int x,int &y){
if (x < 0) return false;
if (x == 0) return true;
if (isPalindrome(x/10, y) && (x%10 == y%10)) {
y /= 10;
return true;
} else {
return false;
}
}
调用的时候这样用 : isPalindrome(x,x)
这是为什么啊,看不懂,C语言都忘记了。。。。
这是一条镜像帖。来源:北邮人论坛 / java / #21259同步于 2012/1/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
这个C代码怎么理解
web
2012/1/14镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
【 在 GacktCamui 的大作中提到: 】
: 就算是用递归判断回文,也应该是每次递归砍掉最高位和最低位
: isPalindrome(x/10, y)明显只砍掉了最低位
: --
: ...................
是对的 下面 有个 y/=10
【 在 kicoven 的大作中提到: 】
:
: 【 在 GacktCamui 的大作中提到: 】
: : 就算是用递归判断回文,也应该是每次递归砍掉最高位和最低位
: ...................
不过调用方法isPalindrome(x,x) 与isPalindrome(int x,int & y)不匹配 和判断应该是(x/10 == y%10) 来对比首尾吧
那不还是错的么。。。
【 在 kicoven 的大作中提到: 】
: 不过调用方法isPalindrome(x,x) 与isPalindrome(int x,int & y)不匹配 和判断应该是(x/10 == y%10) 来对比首尾吧