首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Factorial程序

Java Factorial程序
EN

Stack Overflow用户
提问于 2019-02-24 12:49:50
回答 5查看 500关注 0票数 1

我找不出我的代码中遗漏了什么。任何帮助都将不胜感激。我是编程新手,我只是在做一些练习。谢谢!

代码语言:javascript
复制
import java.util.Scanner;
import java.lang.Math;

public class Factorial {

    public static Scanner sc;

    public Factorial() {
    }

    int factorial(int n) {
        for (int j = n - 1; j > 0; j--) {
            int factorial = factorial(0) * j;
        }
        return factorial(0);
    }

    public static void main(String[] args) {

        System.out.print("Enter a number to find its factorial: ");
        sc = new Scanner(System.in);
        int myNumber = sc.nextInt();

        Factorial myFactorial = new Factorial();
        System.out.println(myFactorial.factorial(myNumber));
    }
}
EN

回答 5

Stack Overflow用户

发布于 2019-02-24 12:52:34

您缺少边角大小写(对于0):

代码语言:javascript
复制
int factorial(int n) {
    if (n == 0) return 1;
    for (int j = n - 1; j > 0; j--) {
        int factorial = factorial(0) * j;
    }
    return factorial(0);
}
票数 2
EN

Stack Overflow用户

发布于 2019-02-24 13:04:06

在递归模式下:`

代码语言:javascript
复制
import java.util.Scanner;
import java.lang.Math;




class Factorial {

public static Scanner sc;


public static int factorial(int n) {
    if(n==0)return 1;
    return n*factorial(n-1);
}

public static void main(String[] args) {

    System.out.print("Enter a number to find its factorial: ");
    sc = new Scanner(System.in);
    int myNumber = sc.nextInt();

    //Factorial myFactorial = new Factorial();
    System.out.println(factorial(myNumber));
}
}`
票数 2
EN

Stack Overflow用户

发布于 2019-02-24 12:54:07

好吧..。不管您在n上提供了什么,您总是返回factorial(0),这最终导致对factorial的调用的无限循环,所以我猜您的堆栈正在遭受重创,并获得堆栈溢出错误,对吧?我认为这就是错误所在。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54848845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档