【发布时间】:2017-01-29 01:59:41
【问题描述】:
您好,第一个 Java 类,它似乎每分钟走一英里。我们学习某个主题的基础知识,并被要求为更高级的程序编写代码,而不是帮助我们了解该主题。
编写一个以整数为输入的递归程序。该程序获取数字中的每个数字并将它们全部相加,并以新的和重复,直到结果为单个数字。
你的输出应该是这样的:
################### 输出示例 1输入一个数字:96374
我在计算.....
第 1 步:9 + 6 + 3 + 7 + 4 = 29
第 2 步:2 + 9 = 11
第 3 步:1 + 1 =2
3个步骤终于个位数!!!!!
你的答案是 2。
我了解 java 用来产生我想要的输出的数学。在学习了递归的基础知识后,我可以做到这一点。但是仅设置代码的布局和格式,我就迷路了。我遇到了一些有道理的错误,但由于缺乏经验而无法纠正。
package numout;
import java.util.Scanner;
public class NumOut {
public static void main(String[] args) {
System.out.print("Enter number: ");
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
System.out.println(n);
}
public int sumDigit(int n){
int sum = n % 9;
if(sum == 0){
if(n > 0)
return 9;
}
return sum;
}
}
输出复制了用户输入给出的代码,这是可以理解的。 当我试图把它分成两部分时,我很难打电话给第二类。我也知道我不是soprln n,也不是总和。所以我试着把它合二为一,我可以看到问题,但不知道如何找到解决方案。
【问题讨论】:
-
查看这个用 Java 编写的斐波那契递归程序的解释:Java recursive Fibonacci sequence。这应该能让您深入了解您需要做什么。
-
这个问题太模糊了。有人可以真正回答它的唯一方法是为您编写代码,我希望他们不会这样做。您需要将其缩小到一个特定的问题,即为什么代码没有按照您期望的方式工作。我建议你从忘记递归和多个步骤开始——你能写一个程序来接受一个整数并输出它的数字之和吗?
-
您需要简单地返回传入参数的 mod10 并通过传入所述参数除以 10 将其添加到调用本身。不要忘记检查 0 以便您可以从您的功能。
-
再一次,我不想含糊其辞或获取代码。只是想了解我猜的格式。我什至不确定。我完全理解 mod 10. mod 一般,但那是数学。将其转换为代码是我卡住的地方。练习/重复是否会变得更容易。这就像我被卡住的障碍。是否有任何唯一可以生成简单场景(启动/创建程序)的程序,我必须用代码来解决。我觉得那将是一个很好的开始。
标签: java recursion conditional