Как убрать последнюю звездочку из вывода, сгенерированного l oop? - PullRequest
0 голосов
/ 11 февраля 2020
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

может кто-нибудь сказать мне, как удалить этот дополнительный "*" из вывода

Ответы [ 5 ]

1 голос
/ 11 февраля 2020
for(long i=1;i<=n;i++) {
    fact=fact*i;
    System.out.print(i+" ");
    if(i!=n)
        System.out.print("*");
}
0 голосов
/ 11 февраля 2020

Сделайте это следующим образом:

for (long i = 1; i <= n; i++) {
    fact = fact * i;
    if (i < n) {
        System.out.print(i + " * ");
    } else {
        System.out.print(i);
    }
}
0 голосов
/ 11 февраля 2020
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+" ");
      if(i<n) {
        System.out.print("*");
      }
    }
    System.out.print("\nThe factorial is: "+fact);
  }

}
0 голосов
/ 11 февраля 2020

обновленный код - нужно проверить if(i!=n)

       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);
}
0 голосов
/ 11 февраля 2020

Никто не имеет доступа к строчному буферу System.out, поэтому решение должно принимать себя, что нет дополнительной звездочки:

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