我想出了这个 Java 代码来解决 sumOfDigits。
public static int sumOfDigits(int num){
if (num == 0){
return 0;
}
return num%10+ sumOfDigits(num/10);
}
嗯,我知道这行得通,但我希望任何人都可以分享有关如何提高代码效率的见解或 Material (一些正式的术语/知识),因为我知道 Java 并没有那么好地支持递归。
最佳答案
递归在 Java 中根本不是一个坏工具。当然,理论上每个函数调用都有成本,但 JIT 编译器通常能够在运行时自行优化并提供良好的性能。您不应该优化一个明确用递归编写的函数,如果没有它,另一个函数会更麻烦,除非您真的遇到问题,但我怀疑您是否会使用该代码。根据经验,您会发现代码易读性非常重要。
要回答您的问题,实现您想要的另一种方法是简单地循环直到 num 等于 0 并每次将每 10 除法的结果存储在 num 中:
int total = 0;
while (num != 0) {
total += num % 10;
num = num / 10;
}
关于java - 编程新手 - 更有效的数字总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14985339/