Language c (multiplication de deux nombre)

Fermé
ghani-206 Messages postés 2 Date d'inscription jeudi 29 décembre 2011 Statut Membre Dernière intervention 1 février 2012 - 1 févr. 2012 à 21:58
yac3133 Messages postés 8 Date d'inscription mercredi 1 février 2012 Statut Membre Dernière intervention 2 février 2012 - 2 févr. 2012 à 14:17
bonjour ,

je besoin UN COUP DE MAIN
programme qui multiplie les deux entiers positifs a et b selon le principe récursif suivant:
A*b=a*(b-1)+a si b est impaire
A*b=(2*a)*(b/2) si b est paire et différent de 0

exemple
36*7=36*6+36
. =72*3+36
. =72*2+108
. =144*1+108
. =144*0+252
. =252


merci d'avance ,

3 réponses

yac3133 Messages postés 8 Date d'inscription mercredi 1 février 2012 Statut Membre Dernière intervention 2 février 2012 3
2 févr. 2012 à 12:34
Bonjour,
Si tu as un pb dans le langage c(si g bien compris ton pb), donc voila le code source EN C:

# include <stdio.h>
# include <stdlib.h>


int P; int A,B;// DECLARATION GLOBAL

int produit(int A, int B) //fonction du recursivité
{

if(B>0)
{
if( (B % 2) == 0) // % =mod
P=produit (2*A,B/2);
else
P=produit (A,B-1)+A;
}
return P;
}


int main()
{
int Pr;
printf("Donner la valeur de A :"); scanf("%d",&A);
printf("Donner la valeur de B :"); scanf("%d",&B);

Pr= produit (A,B);
printf("le produit de A, B = %d \n", Pr);
system("pause");
return 0;
}
3
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
Modifié par fiddy le 2/02/2012 à 13:43
Il n'y a aucun intérêt à déclarer les variables globales dans votre exemple.
Il vaut mieux éviter autant que possible l'utilisation de globale.
0