Java模与除法
有人能解释一下为什么这个代码会返回输入为x的内容吗Java模与除法,java,modulus,Java,Modulus,有人能解释一下为什么这个代码会返回输入为x的内容吗 public static void calc(int x) { if((x / 10) != 0) { calc(x / 10); } System.out.print(x % 10); } 您的calc方法是一种递归方法 如果执行int除法的结果不是0,即如果数字至少是10,则除以10,并调用自身 最终,您将得到一个小于10的数字。if条件将为false,x%10将为x本身。但此时的x是什么?这是数字
public static void calc(int x)
{
if((x / 10) != 0)
{
calc(x / 10);
}
System.out.print(x % 10);
}
您的
calc
方法是一种递归方法
如果执行int
除法的结果不是0
,即如果数字至少是10
,则除以10
,并调用自身
最终,您将得到一个小于10
的数字。if
条件将为false
,x%10
将为x
本身。但此时的x
是什么?这是数字的第一位
然后基本情况结束,递归调用all callx%10
进行打印。在每个级别,打印另一个数字,直到原始呼叫打印最后一个数字
例如:
calc(456)
x is 456.
x / 10 is 45, not 0. Call calc(x / 10)
calc(45)
x is 45.
x / 10 is 4, not 0. Call calc(x / 10)
calc(4)
x is 4.
x / 10 is 0.
Print x % 10, or 4.
Print x % 10, or 5.
Print x % 10, or 6.
456
您的
calc
方法是一种递归方法
如果执行int
除法的结果不是0
,即如果数字至少是10
,则除以10
,并调用自身
最终,您将得到一个小于10
的数字。if
条件将为false
,x%10
将为x
本身。但此时的x
是什么?这是数字的第一位
然后基本情况结束,递归调用all callx%10
进行打印。在每个级别,打印另一个数字,直到原始呼叫打印最后一个数字
例如:
calc(456)
x is 456.
x / 10 is 45, not 0. Call calc(x / 10)
calc(45)
x is 45.
x / 10 is 4, not 0. Call calc(x / 10)
calc(4)
x is 4.
x / 10 is 0.
Print x % 10, or 4.
Print x % 10, or 5.
Print x % 10, or 6.
456
您的
calc
方法是一种递归方法
如果执行int
除法的结果不是0
,即如果数字至少是10
,则除以10
,并调用自身
最终,您将得到一个小于10
的数字。if
条件将为false
,x%10
将为x
本身。但此时的x
是什么?这是数字的第一位
然后基本情况结束,递归调用all callx%10
进行打印。在每个级别,打印另一个数字,直到原始呼叫打印最后一个数字
例如:
calc(456)
x is 456.
x / 10 is 45, not 0. Call calc(x / 10)
calc(45)
x is 45.
x / 10 is 4, not 0. Call calc(x / 10)
calc(4)
x is 4.
x / 10 is 0.
Print x % 10, or 4.
Print x % 10, or 5.
Print x % 10, or 6.
456
您的
calc
方法是一种递归方法
如果执行int
除法的结果不是0
,即如果数字至少是10
,则除以10
,并调用自身
最终,您将得到一个小于10
的数字。if
条件将为false
,x%10
将为x
本身。但此时的x
是什么?这是数字的第一位
然后基本情况结束,递归调用all callx%10
进行打印。在每个级别,打印另一个数字,直到原始呼叫打印最后一个数字
例如:
calc(456)
x is 456.
x / 10 is 45, not 0. Call calc(x / 10)
calc(45)
x is 45.
x / 10 is 4, not 0. Call calc(x / 10)
calc(4)
x is 4.
x / 10 is 0.
Print x % 10, or 4.
Print x % 10, or 5.
Print x % 10, or 6.
456
我不认为它对负数有效,但对非负数有效
x/10
是删除了一位数的x
,而x%10
是x
的一位数。忘了补充一句,它适用于任何正数。我不认为它适用于负数,但对于非负数,这就行了x/10
是删除了一位数的x
,而x%10
是x
的一位数。忘了补充一句,它适用于任何正数。我不认为它适用于负数,但对于非负数,这就行了x/10
是删除了一位数的x
,而x%10
是x
的一位数。忘了补充一句,它适用于任何正数。我不认为它适用于负数,但对于非负数,这就行了x/10
是x
并删除了一位数字,而x%10
是x
的一位数字。忘记添加它是用于任何正数