Aidez moi pour mes devoirs ...

Bonjour,
J'ai une question concernant l'agorithme.
Le probleme est le suivant: "Ecrire un algorithme qui lit un entire n et retourne le plus grand p tel que p!<=n"
Mercii bcp pour votre aide!!!!!!!

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Salut,

    Tu peux faire une fonction qui calcule la factorielle d'un entier naturel, et faire une boucle while pour tester à partir de 1 si tu dépasses ou non l'entier naturel saisi (qui devra être un entier naturel non nul ne dépassant pas la capacité de stockage du type que tu choisiras).

    Dal

    1. #include <stdio.h>

      int facto ( int n) {

      if(n == 0){
      return 1;
      }
      else {
      return n*facto(n-1);
      }

      }

      //algorithme qui lit un entire n et retourne le plus grand p tel que p!<=n "
      int algo (int n){
      int p;
      while (facto(p) < n){
      p++;
      }

      return p-1;
      }

      int main (void){

      int p = algo(25);

      printf(" p = %d \n", p);

      return 0;
      }

      1. C'est bien, mais notre "ami" avait la flemme de faire son exercice.
        Dal lui donne des pistes de réflexions, pour qu'il réfléchisse un peu et produise son travail.
        Maintenant qu'il a une solution toute faite, tu auras une bonne note à son exo....
      2. Oui j'ai écrit ça en 5 minutes histoire de montrer l'esprit du truc! J'ai compilé pour voir si ça marchait une petite exécution et c'est tout.
        Si il n'est pas capable de faire l'effort de vérifié à la limite c'est son problème ahah