IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Que font ces fonctions ?


Sujet :

C

  1. #1
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut Que font ces fonctions ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    #include <stdio.h>
    #include <stdlib.h>
    #define BASE 100000
    #define Base 10
    /*voila la premiere fonction*/
    int produit(long long int *resultat, long long int *a, int p, long long int facteur)
    {
      int i;
      long long int retenue=0;
      for (i=0;i<=p;i++) resultat[i]=0;
      for (i=0;i<p;i++)
        {
          long long int c = retenue + a[i]*facteur;
          retenue=c/BASE;
          resultat[i]=c-BASE*retenue;
        }
      resultat[p]=retenue;
      if (resultat[p]!=0)
        return p+1;
      else return p;
    }
    /*voila la deuxieme fonction mais ki est en relation avec la premiere*/
    long long int *factorielle(long long int n, int *M)
    {
      long long int *factorielle, *resultat;
      long long int facteur=2;
      int i;
      int p=1;
      factorielle=calloc(n,sizeof(long long int));
      factorielle[0]=1;
      resultat=calloc(n,sizeof(long long int));
      for (i=1; i<n; i++)
        {
          long long int *temp;
          p=produit(resultat, factorielle, p, facteur);
          facteur++;
          temp = factorielle;
          factorielle = resultat;
          resultat = temp;
        }
      *M = p;
      free(resultat);
      return factorielle;
    }
    /*une troisieme fonction ac son explication mais je la comprends pas la voila */
    /*
    Utile pour l'affichage du resultat.
    Calcule le nombre de chiffres en base Base
    de l'entier m.
    */
    int nb_chiffres(long long int m)
    {
      int N=0;
      long long int z=1;
      do
        {
          z *= Base;
          N++;
        }
      while (z<=m);
      return N;
    }

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 40
    Par défaut
    Google est ton ami il suffit de rechercher long long int :
    http://neofutur.net/langage_c/exampl...e_C_types.html

    En résumé ce sont des types de données pour stocker de grande valeurs .... utile pour un calcul de factorielle qui augmente de façon exponentielle.

    J'ai pas analysé tout ton code mais rien que le mot factorielle est parlant et ça donne n! = 1*2*3*4....*n (! est l'opérateur mathématique)

    15! = 1,30767E+12 (d'où des long long int)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    //voila la premiere fonction
    int produit(long long int *resultat, long long int *a, int p, long long int facteur)
     
    //voila la deuxieme fonction mais ki est en relation avec la premiere
    // >>> Calcul factorielle de n donc 1*2*3*4...*n
    // >>> On stocke les résultats de tous les factorielles dans un tableau
    // >>> qui est retourné par la fonction
    long long int *factorielle(long long int n, int *M)
     
    //une troisieme fonction ac son explication mais je la comprends pas la voila 
    // >>> Si tu ne comprends pas ceci va falloir bosser un peu l'informatique
    // >>> car y'a 5 lignes et rien de bien compliqué
    // >>> A savoir : z *= Base -> z = z * Base / N++ -> N = N+1
    // >>> J'en dirais pas plus
    /*
    Utile pour l'affichage du resultat.
    Calcule le nombre de chiffres en base Base
    de l'entier m.
    */
    int nb_chiffres(long long int m)
    Après les forums c'est bien mais faut pas abuser non plus y'a au moins la dernière fonctions qui est compréhensibles par tous.

Discussions similaires

  1. Que font ces codes JQuery ?
    Par boobs60 dans le forum jQuery
    Réponses: 1
    Dernier message: 30/05/2012, 20h03
  2. que font ces commandes ?
    Par sab_info dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 07/04/2008, 09h58
  3. [Conception] Que fait ma fonction ?
    Par Tr@nkill dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 28/04/2006, 15h03
  4. va_arg, va_start, va_end, que font ces fonctions???
    Par richard_sraing dans le forum C
    Réponses: 5
    Dernier message: 11/02/2006, 18h46
  5. [xsl] que sont ces nodes?
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 10/11/2005, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo