我应该在阶乘计算器代码中添加或删除什么?

5lwkijsr  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(339)

**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

27天前关门了。
改进这个问题
我是一个新的编码,所以我一直困惑我应该添加或删除我的代码。当我输入2的阶乘时,它也打印出阶乘1,当我只想打印出2的阶乘时。

import java.util.Scanner;

public class FactorialCalculator {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int i, fact = 1, number;

        System.out.println("<------ Factorial Calculator ------>");
        System.out.print("Enter a positive integer: ");
        number = input.nextInt();

        if (number <= 2) {
            for (i = 1; i<=number; i++) {
                fact = fact * i;
                System.out.println("2! = 1 x 2 ");
                System.out.println("The Factorial of 2 is: "+fact);             
            }
        }       
    }
}

输出:

<------ Factorial Calculator ------>
Enter a positive integer: 2
The Factorial of 2 is: 1
The Factorial of 2 is: 2
pobjuy32

pobjuy321#

把你的打印语句从循环中去掉。

if (number <= 2) {
     for (i = 1; i<=number; i++) {
          fact = fact * i;
     }
     System.out.println("The Factorial of 2 is: "+fact);             
}

但您可能希望允许更大的值,而不仅仅是 2 . 别忘了两者 0! 以及 1! 等于 1 .
像这样试试。

int fact = 1; //starting point for all factorials.
if (number >= 2) {
    for (int i = 2; i <= number; i++) {
         fact = fact * i;
    }
}
System.out.println(number + "! = " + fact);

我觉得你很困惑 <= 2>= 2 . <= 2 只允许值 2, 1, 0, -1, etc 进入循环。你想要的是允许 >= 2 或者 2, 3, 4, ...

相关问题