Soyez le premier à donner votre avis sur cette source.
Snippet vu 53 802 fois - Téléchargée 21 fois
#include<stdio.h> #include<conio.h> main() { int a,b,x,t,m; printf("Entrez le premier entier positif:\t"); scanf("%d",&a); printf("\nEntrez le deuxieme entier positif:\t"); scanf("%d",&b); if (b>a) {x=b; b=a; a=x;} if (a%b==0) printf("\nLe PPCM est :\t%d",a); else {t=(a*b); while(b != 0) {x = a%b; a = b; b = x;} m=t/a; printf("\nLe PPCM est :\t%d ",m);} while(b != 0) {x = a%b; a = b; b = x;} printf("\nLe PGCD est :\t%d", a); getch(); }
11 avril 2011 à 00:25
23 janv. 2010 à 20:44
Voici alors l'algo que je propose:
ALGO: PPCFM
VAR: X, Y,a: ENTIERS
aFFICHER; Veuillez saisir un nombre
Saisir: X
Afficher: Veuillez saisir le second nombre
Saisir: Y
Si X<Y alors
a .=X
Répeter a mode X et a mode Y jusqu'à a mode X = a mode Y=0
Fin
14 janv. 2010 à 22:43
si tu parles d'expliquer la fonction, c'est parce qu'elle parle d'elle-même n fait :
exemple :
int PGCD(int a, int b)
{
if (b == 0)
return a;
else
return PGCD(b, a%b);
}
Signifie :
int PGCD(int a, int b) //Pour la fonction PGCD, cette fonction a besoin du paramètre a et du paramètre b (sans modifier les originaux) et lorsquelle finira envoyera à celui qui l'a appelé un integer.
if (b == 0)
return a;
//Si b est égal à 0, il faut retourner (envoyer, c'est le int) la valeur "a".
else
return PGCD(b, a%b);
//Sinon, revoyer la valeur donnée par la fonction PGCD avec les valeurs suivantes. Ici, la fonction appelle s'appelle elle-même. Ce qui va se passer, c'est que dans la valeur "a" elle va y placer la quantité "b" et dans la variable "b" elle y placera la quantité "a modulo b".
Au final, un moment donné la variable "b" égalera 0 et donc la fonction arrêtera de s'appeler elle-même et renvoyera au "main" la valeur de "a". Celui-ci, par définition [voir wikipédia PGCD] vaudra le PGCD.
C'était ta question?
14 janv. 2010 à 22:35
13 janv. 2010 à 00:08
Pour optimiser encore, on peut même enlever le "else"
Et hop! une variable intermédiaire de moins :D
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.