回文是一个数字,你是否从左至右或从右至左读它读取相同。 例如 - 1221
现在执行
假设你已经进入了1221的号码。 您的调用方法声明看起来像 isPalindrome(1221);
步骤1 - 这里,我们有三个变量NR = 1221,转速= 0和x将作为while循环开始它检查x是否大于保持原来的值,它是1221
一旦零或不是,在我们的例子中,1221大于0,这是真的,所以程序会进入循环。
then rev = 10 * rev + x%10;
该表达式将改变rev的初始值为零。
10 * 0 + 1221%10将给出1作为答案。因为%模运算符给出的余数等于1221除以10将给出1作为余数。
现在rev的值为1。
程序将进入下一个语句更新x的值,因为我们已经存储了我们的回文项的一个数字。
x/= 10 ;
这是一个速记声明其等同于 X = X/10; 所以在这里,当x除以10时,我们将得到122作为商和122将被存储在x中。
第2步 - 现在程序流将会继续执行第一条语句(即循环之美)来检查条件是否为真,因为x = 122大于0。 现在转的值将是
rev = 10 * 1 (remember value of rev is 1 at the moment) + 122% 10 ;
转的新值将是 转= 10 * 1 + 2(因为模量或122其余部分时除以10是2时)
最终根据第一个陈述的值将是 rev = 12.
和程序将提前更改x的值,因为我们完成了我们输入的数字的最后两位数字。
x = x/10; which will result us the quotient of 12.
步骤3 - 12大于0状况的真实计划将移动到下一条语句。
rev = 10 * rev (12) + x (12) % 10;
新转值 转= 120 + 2; 转= 122
下一条语句会给我们x的另一个变化值,使我们可以完成我们的回文数字。
x = x/10;
x = 12/10; will give us 1 as quotient
步骤4 - 而条件将再次被满足为1大于0
并且更新转值将是
rev = 10* rev (122) + 1% 10;
由于潜水1与10会给我们其余的1,所以最终的表达会 转= 1221
现在的最后一次更改为v (x)= x(1)\ 10; x将为零,因为当将1除以10时不会有商。
第5步 - 0大于0的条件将是错误的,并计划将退出,同时和所有变量的最终值将是
nr = 1221
rev = 1221
x = 0
几个语句中你的方法将证明回报键入布尔值。
if(nr==rev)
return true ;
else
return false;
我希望我能解释你的流程,也想让你干运行非回文数字相同的程序。
把它写在纸上的少数... –