Java 使用for循环打印出1-20的阶乘

Java 使用for循环打印出1-20的阶乘,java,for-loop,Java,For Loop,我的程序运行得很好,但唯一的问题是数字2的阶乘是2而不是1。它将2的值赋予3,以此类推。因此,输出是一行,20的阶乘是2432902008176640000 这不是“家庭作业”,只是编程作为一种爱好 public class Factorials { public static void main(String[] args) { int counter; long factorials = 1; // long total = 1; Sy

我的程序运行得很好,但唯一的问题是数字2的阶乘是2而不是1。它将2的值赋予3,以此类推。因此,输出是一行,20的阶乘是2432902008176640000

这不是“家庭作业”,只是编程作为一种爱好

public class Factorials {

  public static void main(String[] args) {

    int counter;
    long factorials = 1;
    //        long total = 1;

    System.out.printf("%4s%30s\n", "Number", "Factorials");

    for (counter = 1; counter <= 20; factorials *= counter, counter++)
        System.out.printf("%4d%,30d\n", counter, factorials);

  }
}

请帮帮我:

试试这个,应该可以:

for(counter = 1; counter <= 20; counter++){
    factorials *= counter;
    System.out.printf("%4d%,30d\n", counter, factorials);

}

更干净的Java标准是有这样的for循环:forx;x试试这个,它应该能起作用:

for(counter = 1; counter <= 20; counter++){
    factorials *= counter;
    System.out.printf("%4d%,30d\n", counter, factorials);

}
更干净的Java标准是有这样的for循环:forx;x使用这个:

for (counter = 1; counter <= 20;counter++, factorials *= counter) {
    System.out.printf("%4d%,30d\n", counter, factorials);
}
使用以下命令:

for (counter = 1; counter <= 20;counter++, factorials *= counter) {
    System.out.printf("%4d%,30d\n", counter, factorials);
}

将业务逻辑从循环定义中去掉。它将编译并运行,但它不会可读,并且会产生令人困惑的结果,正如您所注意到的,将业务逻辑从循环定义中删除。它将编译并运行,但它不会可读,并且会产生令人困惑的结果,正如您所做的那样noticed@Carlton-循环定义中有一个额外的逗号。@jackal我的代码中有一个额外的逗号,已编辑掉。“现在应该可以用了。”ShairyarShafqat很乐意帮忙!如果您觉得这有帮助,请随意投票并接受答案@Carlton-循环定义中有一个额外的逗号。@jackal我的代码中有一个额外的逗号,编辑掉了。“现在应该可以用了。”ShairyarShafqat很乐意帮忙!如果您觉得这有帮助,请随意投票并接受答案!