CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Algorithme] Fonction récursive -> produit avec incrémentation

[Key]Board
[Key]Board
Niveau 10
22 septembre 2017 à 02:23:09

Salut :ok:

Alors petit exercice (que je trouve) assez compliqué :ok:

Il s'agit d'écrire une fonction récursive à deux paramètres (x, y) en ayant recours aux seuls opérations suivantes : incrémentation, décrémentation, comparaison à zéro et affectation.
Cette fonction doit renvoyer le produit de ses deux arguments.
Il n'est pas possible d'appeler d'autres fonctions (telle qu'une fonction d'addition par exemple...).

Mis à part tester au début si x ou y est égal à zéro pour renvoyer zéro, je n'ai aucune idée pour la suite... :doute:
Je suppose qu'il faut faire une récursivité d'ordre 2 ? Mais je suis pas à l'aise avec ça :(

Avec ces consignes j'ai déjà écrit pas mal de fonctions telle que l'addition, la distance, le minimum, le maximum, l'égalité, l'infériorité, la supériorité.
Mais le produit je sèche complètement. Et évidemment je n'ai pas le droit d'appeler une fonction précédemment écrite... :(

Je veux bien un peu d'aide :ok:

:merci:

godrik
godrik
Niveau 30
22 septembre 2017 à 04:43:01

C'est toujours le meme truc dans ces exercices. Il s'agit de reecrire l'operation sous une autre forme. Souvent tu utilises l'expression de base et tu groupe les termes autrement.

JeRespireLeVent
JeRespireLeVent
Niveau 10
22 septembre 2017 à 07:44:27

Tu incrementes X de X fois et tu appelles ta fonction Y fois -1.

Exemple 5*2:
Pour y =2 tu appelles ta fonction une seule fois:
5++
6++
7++
8++
9++
10

Et tu retournes le résultat quand y vaut 1.

CA FONCTIONNE BELIVE ME C'EST MAL EXPLIQUÉ

Édit: par contre pour les nombres négatifs tu te débrouilles

Message édité le 22 septembre 2017 à 07:46:17 par JeRespireLeVent
Fuligule
Fuligule
Niveau 10
22 septembre 2017 à 11:02:14

Tu veux utiliser :

x*1 = x
x*y = x + x*(y-1)

Sauf que ça voudrait dire utiliser ta fonction d'addition, et tu dis que tu n'as pas le droit.
Du coup, tu peux faire une fonction qui prend en argument (x,y,z) et calcule x*y+z, pour faire à la fois la multiplication et l'addition :

x*1+0 = x
x*y+0 = x*(y-1)+x
x*y+z = 1 + x*y+(z-1)

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment