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 le
1 code> et démarrez la boucle avec
2 code> Impression du
* code> avant le le numéro est imprimé