你能解释一下这种方法的作用吗?

时间:2014-11-30 14:24:52

标签: c#

我们在一本书中找到了这种方法。

根据我的理解,我想检查一个号码是否按升序排序。

例如,数字54321(所有数字都按升序排列)

但是,我不明白这种方法是如何工作的...为什么返回0或1?

您能以简单的方式向我解释这种方法会发生什么吗?

 static int f(long n)
    {
        while(n>10)
        {
            if (n % 10 > n / 10 % 10) return 0;
            n = n / 10;


        }
        return 1;
    }

1 个答案:

答案 0 :(得分:3)

n % 10可以获取单位所在位置的数字,n / 10 % 10可以获得十位数字。

作者正在比较这两个数字并返回0如果单位所在位置的数字大于十位数字。

如果没有,他将n除以10以丢弃单位所在的数字。现在,十个地方的数字现在位于单元的位置,百位数中的数字现在位于十位,前面的步骤重复。

如果在丢弃最后一个数字后该数字变得小于或等于10,如果它没有返回0,它将返回1,这表明n中的所有数字都按降序排列从左到右。