我们在一本书中找到了这种方法。
根据我的理解,我想检查一个号码是否按升序排序。
例如,数字54321(所有数字都按升序排列)
但是,我不明白这种方法是如何工作的...为什么返回0或1?
您能以简单的方式向我解释这种方法会发生什么吗?
static int f(long n)
{
while(n>10)
{
if (n % 10 > n / 10 % 10) return 0;
n = n / 10;
}
return 1;
}
答案 0 :(得分:3)
n % 10
可以获取单位所在位置的数字,n / 10 % 10
可以获得十位数字。
作者正在比较这两个数字并返回0
如果单位所在位置的数字大于十位数字。
如果没有,他将n除以10以丢弃单位所在的数字。现在,十个地方的数字现在位于单元的位置,百位数中的数字现在位于十位,前面的步骤重复。
如果在丢弃最后一个数字后该数字变得小于或等于10,如果它没有返回0,它将返回1,这表明n
中的所有数字都按降序排列从左到右。