如何从循环生成的输出中删除最后一个星号?

问题描述 投票:0回答:3
import java.util.*;
public class factorial {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
      Scanner sc=new Scanner(System.in);
      System.out.println("Enter a number");
      int n=sc.nextInt();
        long fact=1;
        System.out.println("Calculations: ");
        for(long i=1;i<=n;i++)
        {
            fact=fact*i;
            System.out.print(i+" ");
            System.out.print("*");
        }
        System.out.print("\nThe factorial is: "+fact);
    }

}

这是我的阶乘程序代码,当我打印此代码时..我得到了类似的内容输入一个数字4计算:1 * 2 * 3 * 4 *阶乘为:24

谁能告诉我如何从输出中删除该额外的“ *”

java syntax syntax-error
3个回答
1
投票
for(long i=1;i<=n;i++) {
    fact=fact*i;
    System.out.print(i+" ");
    if(i!=n)
        System.out.print("*");
}

0
投票

一个无权访问System.out行缓冲区,因此解决方案必须是:

    for (long i = 1; i <= n; i++) {
        if (i != 1) {
            System.out.print(" * ");
        }
        fact *= i;
        System.out.print(i);
    }
    System.out.println();

0
投票

更新后的代码-

       public static void main(String[] args) {


    Scanner sc=new Scanner(System.in);
    System.out.println("Enter a number");
    int n=sc.nextInt();
    long fact=1;
    System.out.println("Calculations: ");
    for(long i=1;i<=n;i++)
    {
        fact=fact*i;
        System.out.print(i+" ");
        if(i!=n)
            System.out.print("*");
    }
    System.out.print("\nThe factorial is: "+fact);



}
© www.soinside.com 2019 - 2024. All rights reserved.