作业帮 > 综合 > 作业

回文数问题int jsValue(long m){ long i, n; n = 0 ; while(m) { n =

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/18 08:29:02
回文数问题
int jsValue(long m)
{
long i, n;
n = 0 ;
while(m) {
n = n * 10 + m % 10 ;
m /= 10 ;
}
return m == n ;
}这个程序是判断一个数m(m在11到999之间) 如果m ,m平方,m三次方都是回文
返回 1; 不是的话返回 0;
想死了想不出来是为什么
是南开100题里面的 绝对正确 我用C++试过了,
返回1只有一种情况,就是m==n
但是循环能终止,条件肯定是m=0,
不用看,有这句话m/=10在循环里面最后m肯定是0
这样的话,就考虑n=0就行了
出循环的时候只有n的值是0 才会返回1
再看n会不会等于0 你的定义域在11-999
放11进去的话 n最后也要等于11
放13进去的话 n最后也要等于31
放144进去的话 n最后要等于441
放123进去的话 n最后要等于321
所以说这是在把你的数倒过来 n等于你的数的反
m永远等于0
怎么会等于1呢?