C# 你能解释一下这个方法的作用吗?
我们在一本书中找到了这种方法 据我所知,我想检查一个数字是否按升序排列 例如,数字54321(所有数字都按升序排列) 然而,我不明白这个方法是如何工作的。。。为什么返回0或1 你能用一种简单的方式向我解释一下这种方法会发生什么吗C# 你能解释一下这个方法的作用吗?,c#,C#,我们在一本书中找到了这种方法 据我所知,我想检查一个数字是否按升序排列 例如,数字54321(所有数字都按升序排列) 然而,我不明白这个方法是如何工作的。。。为什么返回0或1 你能用一种简单的方式向我解释一下这种方法会发生什么吗 static int f(long n) { while(n>10) { if (n % 10 > n / 10 % 10) return 0; n = n / 10;
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
中的所有数字都是从左到右降序排列的。提示:值n%10
代表什么?值n/10%10
代表什么?值n/10
代表什么?(顺便说一句,在54321这个数字中,数字是降序的,而不是升序的。)不过,我想知道作者没有返回数字的原因是什么boolean@dcastro在第一次猜测中,我认为作者返回1,而0,因为这就是C++中的方法。0为false,而不是0为true。它在C#中并没有真正的用处,但认为它像C一样工作的人会做出这样的假设。@Kevin但是一本书的作者肯定会知道他使用的语言的第一件事。@JeppeStigNielsenn>=10
测试n
至少有两个数字<代码>n>10没有。