Language c (multiplication de deux nombre)

ghani-206 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
yac3133 Messages postés 8 Statut Membre -
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

  1. yac3133 Messages postés 8 Statut Membre 3
     
    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
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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