Le factorielle d'un entiers (sans utilisé du "PRODUIT" )
mOOm123
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
mOOm123 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
mOOm123 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonsoir, j'ai du mal a trouver une solution pour faire le factorielle d'un nombre sans utilisation de "PRODUIT" . Car je vais le traduire en language assembleur Intel 8085 , du coup il n'y a pas une instruction pour le "produit" c'est la raison pour laquelle je veux que sa soit en somme avec la BOUCLE DO WHILE .
En s'inspirant de cette code source , qui fait la puissance d'un entier (bien sur AUCUN PRODUIT est utilisé) ... J'aimerai que vous m'aidiez , MERCI !
Voici le code :
En s'inspirant de cette code source , qui fait la puissance d'un entier (bien sur AUCUN PRODUIT est utilisé) ... J'aimerai que vous m'aidiez , MERCI !
Voici le code :
import java.util.Scanner; public class m { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int i,n,j,x,p,s; System.out.print("n="); n=sc.nextInt(); System.out.print("x="); x=sc.nextInt(); p=1; i=n; do{ s=0; j=x; do{ s=s+p; j=j-1; }while(j!=0); p=s; i=i-1; }while(i!=0); System.out.println(x+"="+p); sc.close();} }
A voir également:
- Le factorielle d'un entiers (sans utilisé du "PRODUIT" )
- Clé de produit windows 10 gratuit - Guide
- Salut j'utilise whatsapp - Accueil - Messagerie instantanée
- Comment savoir qui utilise mon wifi et le bloquer - Guide
- Comment utiliser un chromecast - Guide
- Historique prix produit - Guide
2 réponses
Bonjour,
"il n'y a pas une instruction pour le "produit" c'est la raison pour laquelle je veux que sa soit en somme"
Ce n'est pas très efficace de faire la somme pour calculer un produit.
Il vaudrait mieux faire ça avec des décalages de bits pour les puissances de 2.
Ex: 7*8=7*2^3, c'est à dire qu'il faut juste mettre 7 en binaire (111) et rajouter 3 zéros derrières, résultat 111000 (en binaire), c'est à dire 56.
Tu auras donc faire 1 instruction de décalage de bits (shift en anglais), ce qui est bien mieux que faire 7 sommes de 8 (ou 8 sommes de 7)...
En Java, les décalages de bits se font avec <<
Exemple :
La confiance n'exclut pas le contrôle
"il n'y a pas une instruction pour le "produit" c'est la raison pour laquelle je veux que sa soit en somme"
Ce n'est pas très efficace de faire la somme pour calculer un produit.
Il vaudrait mieux faire ça avec des décalages de bits pour les puissances de 2.
Ex: 7*8=7*2^3, c'est à dire qu'il faut juste mettre 7 en binaire (111) et rajouter 3 zéros derrières, résultat 111000 (en binaire), c'est à dire 56.
Tu auras donc faire 1 instruction de décalage de bits (shift en anglais), ce qui est bien mieux que faire 7 sommes de 8 (ou 8 sommes de 7)...
En Java, les décalages de bits se font avec <<
Exemple :
System.out.println(7 << 3); // 56
La confiance n'exclut pas le contrôle
mOOm123
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
Je vous suis pas , je pene qu'on est meme pas dans la meme longueur d'onde !
tu peux utiliser une méthode récursive cela fait très longtemps que j'ai travaillé avec l'assembleur mais je pense qu'il est possible de faire une méthode récursive.
Bonjour
Si, si, on peut gérer la récursivité en assembleur 8085. Mais c'est "sportif" et complètement inutile ici.
Par contre, il est parfaitement normal que le langage n'autorise pas les produits. L'assembleur, par définition, reflète directement les instructions du processeur, et l'unité arithmétique et logique du 8085 ne dispose pas de la multiplication. N'oublions pas que c'est un ancêtre.
Si, si, on peut gérer la récursivité en assembleur 8085. Mais c'est "sportif" et complètement inutile ici.
Par contre, il est parfaitement normal que le langage n'autorise pas les produits. L'assembleur, par définition, reflète directement les instructions du processeur, et l'unité arithmétique et logique du 8085 ne dispose pas de la multiplication. N'oublions pas que c'est un ancêtre.