gpt4 book ai didi

Java 阶乘输出

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:37 24 4
gpt4 key购买 nike

我应该创建一个程序,要求用户输入一个数字并取该数字的阶乘,然后询问他们是否要进行另一个阶乘 (Y,N)。

它应该是这样工作的:

  • 输入一个数字以取其阶乘:4
  • 4! = 24
  • 做另一个阶乘 (Y,N)? Y
  • 重复直到输入N

我的输出是这样的:

  • 输入一个数字以取阶乘:
  • “做另一个阶乘?(Y,N)?”
  • 4! = 1 无论我输入 Y 还是 N。

    这是我的代码:

    import java.util.Scanner;
    public class factorial
    {
    public static void main ( String [] args )
    {
    Scanner input = new Scanner(System.in);
    System.out.print("Enter a number you want to take the factorial of: ");
    int num = input.nextInt();
    int fact = 1;
    System.out.printf("%d! = %d\n ", num, fact, Factorial(num, fact));
    }
    public static int Factorial(int num, int fact)
    {
    Scanner input = new Scanner(System.in);
    char foo;

    System.out.print("Do another factorial (Y,N)?");
    foo = input.next().charAt(0);

    for (int i = 1; i >= num; i++)
    {
    fact *= i;
    if (foo == 'Y')
    {
    System.out.print("Do another factorial (Y,N)?");
    foo = input.next().charAt(0);
    continue;
    }
    else
    {
    break;
    }
    }
    return fact;

    }

    }

变化后:

import java.util.Scanner;
public class factorial
{
public static void main ( String [] args )
{
Scanner input = new Scanner(System.in);

System.out.print("Enter a number you want to take the factorial of: ");
int num = input.nextInt();

int fact = 1;

System.out.printf("%d! = %d\n ", num, Factorial(num, fact));

System.out.print("Do another factorial (Y,N)? ");
char foo = input.next().charAt(0);

while (foo != 'N')
{
System.out.print("Do another factorial (Y,N)? ");
foo = input.next().charAt(0);

System.out.print("Enter a number you want to take the factorial of: ");
num = input.nextInt();

System.out.printf("%d! = %d\n", num, Factorial(num, fact));
}
}
public static int Factorial(int num, int fact)
{
for (int i = 1; i <= num; i++)
{
fact *= i;
}
return fact;
}

输出还是有一些问题:

  • 输入一个数字以取其阶乘:4
  • 4! = 24
  • 做另一个阶乘 (Y,N)? Y
  • 做另一个阶乘 (Y,N)? Y
  • 输入一个数字以取其阶乘:4
  • 4! = 24
  • 做另一个阶乘 (Y,N)? N
  • 输入一个数字以取阶乘:

最佳答案

你计算阶乘,但你从不打印它:

System.out.printf("%d! = %d\n ", num, fact, Factorial(num, fact));

应该是

System.out.printf("%d! = %d\n ", num, Factorial(num, fact));

此外,您的Factorial 函数没有使用fact 参数,因此您应该删除它,并在函数内部声明一个局部变量。

最后,询问“你想要另一个阶乘”应该在顶层完成,而不是在 Factorial 函数内完成。您的代码也不使用用户输入的字符:您需要一个循环来检查用户的输入,并在输入 Y 时继续。

关于Java 阶乘输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15808205/

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