假设方法enigma定义如下:
public int enigma(int n)
{
int m;
while (n >= 10) {
m = 0;
while (n > 10) {
m += n % 10;
n /= 10;
}
n = m;
}
return (n);
}
enigma(1995)的价值是什么? 我明白enigma(1995)的价值是3.一步一步是什么?
答案 0 :(得分:3)
嗯,你显然很顺利,但我不想为你解决所有问题,所以我只是轻轻一点:
内循环开始时,n = 1995
和m = 0
。正如您在循环结束时已经发现的那样n = 199
,m = 5
。循环从顶部再次开始... n = 199
,m = 5
...等
答案 1 :(得分:0)
外部运行直到n
小于10。
内循环运行直到n
小于或等于10,然后我们将m
的值赋给n
,因此可以再次评估外循环。
内循环会发生什么? m
的余数增加n
的余数除以10(n==1995
时为5),然后将n
设置为除法的(整数)结果(所以现在n==199
)。这重复了几次:
n=1995 => m=5,n=f199
n=199 => m=5+9=14,n=19
n=19 => m=14+9=23,n=1
由于n
现在不大于10,内部循环结束,n
设置为m
(== 23),然后我们再次执行此操作:
n=23 => m=3,n=2
由于n
现在不大于10,因此内部循环结束,n
设置为m
(== 3)。由于现在n
小于10,外部循环存在,我们到达n
(== 3)的结果。
答案 2 :(得分:0)
只需使用eclipse(java)安装,创建一个静态main方法并调用你的函数。
使用调试器时,您可以一步一步地查看变量