问题是“写一个函数,持久性,它接受一个正参数num并返回它的乘法持久性,这是你必须将num中的数字乘以直到达到一个数字的次数。”
public static void main(String[] args){
System.out.println(persistence(39));
//System.out.println(persistence(999));
}
public static int persistence(long n) {
long m = 1, r = n;
if (r / 10 == 0) {
return 0;
}
for(r = n; r!= 0; r /=10){
m *= r % 10;
}
//System.out.println(m);
return persistence(m) + 1;
}
我理解if语句是针对什么时候它最终是一个数字并且它将返回0.如果我能得到关于m变量的解释以及它的用途。 for循环的作用以及何时返回持久性(m)为什么它上面有+ 1。
答案 0 :(得分:0)
计算将会是这样的。
让我们理解问题陈述。
写一个函数,持久性,它接受一个正参数num 并返回其乘法持久性,即数量 倍数必须乘以num中的数字,直到达到一个数字 。位数"
说:39
这是你必须乘以num中的数字的次数 直到你达到一位数。
所以,我们需要这样做才能满足上述说法。
39 = 3*9 = 27 (1 time) - persistance(39)
27 = 2*7 = 14 (2rd time) - persistance(27)
14 = 1*4 = 4 (3rd time)- persistance(14)
所以,根据问题陈述,我们来到一位数。
您可以参考以下内容,了解它。
为什么会有+ 1。
计算递归函数完成计算的次数。