我们在一本书中找到了这种方法。
据我了解,我想检查一下数字是否按升序排列。
例如,数字54321(所有数字均按升序排列)
但是,我不明白此方法的工作原理...为什么返回0或1?
您能以一种简单的方式向我解释这种方法会发生什么吗?
static int f(long n)
{
while(n>10)
{
if (n % 10 > n / 10 % 10) return 0;
n = n / 10;
}
return 1;
}
n % 10
让您将数字放在单位的位置,并将n / 10 % 10
您的数字放在十的位置。
作者正在比较这两个数字,0
如果单位位置的数字大于十位数字,则返回。
如果不是,他将n除以10,以在单位位置丢弃该数字。现在,位于十位的数字现在位于单位的位置,而位于一百位的数字现在位于十位的位置,并且重复前面的步骤。
如果在您继续丢弃最后一个数字后该数字小于或等于10,则它没有返回0,则将返回1,这表明其中的所有数字n
都是从左到右降序排列的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句