gpt4 book ai didi

java - 通过递归的数字总和

转载 作者:行者123 更新时间:2023-11-29 03:08:23 25 4
gpt4 key购买 nike

我正在尝试创建一个应该返回数字总和的递归函数。该函数应该只有一个参数。到目前为止我有这个;

public int sumDigits(int n) {
if(n%10 == n) // last digit remains
return n;

else{
int rightdigit;
rightdigit = n%10; // taking out the right most digit
return rightdigit + (n/10); // adding it to everything on left
}
}

该函数适用于某些值,特别是 2 位数字。但是它给出了一些数字的非常奇怪的值,比如 730,当它应该是 10 时结果是 73。

我已经在纸上解决了,但无法弄清楚我哪里出错了。任何帮助将不胜感激。

最佳答案

您实际上并不是递归。您已经设置了基本情况,但是在递归解决问题时,您应该在函数中包含调用函数本身的代码。

所以你错过了调用 sumDigits 的一行,参数更小。

考虑递归解决方案的两个重要部分:

  1. 基本情况。这是递归的结束,此时您的递归将开始返回,在您的情况下创建一个总和。
  2. 递归:您的递归函数将使用不同的参数调用自身,通常是问题的一小部分。

请注意,您的问题非常适合这个问题:您在 if/else 中有 2 个案例。你的基本案例设置得很好,现在在另一个分支中你会想要实际递归。您应该很清楚在哪里调用 sumDigits

关于java - 通过递归的数字总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30833744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com