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);
}
}
this is my code for the factorial program, when i print this..i get something like this
Enter a number
4
Calculations:
1 *2 *3 *4 *
The factorial is: 24can anyone tell me how to remove that additional "*" from output
5 Réponses :
for(long i=1;i<=n;i++) {
fact=fact*i;
System.out.print(i+" ");
if(i!=n)
System.out.print("*");
}
On n'a pas accès au tampon de la ligne System.out, d'où la solution doit s'emporter qu'il n'y a pas d'astérisque supplémentaire:
for (long i = 1; i <= n; i++) {
if (i != 1) {
System.out.print(" * ");
}
fact *= i;
System.out.print(i);
}
System.out.println();
@ user85421 Vous avez raison, après avoir tapé que cela m'a déjà irrité. Je voulais dire ce que j'ai écrit maintenant. Merci, apprécié
code mis à jour - Vous devez vérifier si (i! = n) code>
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);
}
}
le faire comme suit:
for (long i = 1; i <= n; i++) {
fact = fact * i;
if (i < n) {
System.out.print(i + " * ");
} else {
System.out.print(i);
}
}
Vous voulez donc que votre boucle imprime * uniquement
si (ce n'est pas la dernière itération) code>. Comment nous pouvons vérifier si c'est la dernière itération? Avons-nous des variables que nous pouvons utiliser pour le déterminer?Depuis la multiplication par
1 code> n'est pas nécessaire, imprimez le1 code> et démarrez la boucle avec2 code> Impression du* code> avant le le numéro est imprimé