Une question similaire à celle-ci a été posée il y a quelques années , mais celle-ci est encore plus délicate.
Le défi est simple. Ecrire un programme (en langue de votre choix) qui exécute de façon répétée le code sans utiliser de structures de répétition telles que while
, for
, do while
, foreach
ou goto
( Donc , pour tout ce que vous tatillons, vous ne pouvez pas utiliser une boucle ). Cependant, la récursion n’est pas autorisée, dans la fonction qui s’appelle sens (voir la définition ci-dessous) . Cela rendrait ce défi beaucoup trop facile.
Il n'y a aucune restriction sur ce qui doit être exécuté dans la boucle, mais postez une explication avec votre réponse afin que les autres puissent comprendre exactement ce qui est mis en œuvre.
Pour ceux qui peuvent être accrochés sur les définitions, la définition d'une boucle pour cette question est la suivante:
A programming language statement which allows code to be repeatedly executed.
Et la définition de la récursivité pour cette question sera votre définition de fonction récursive standard:
A function that calls itself.
Winner sera la réponse qui aura le plus de votes positifs le 16 juillet à 10 heures, heure de l’Est. Bonne chance!
MISE À JOUR:
Pour calmer la confusion qui est toujours exprimée, ceci peut aider:
Règles comme indiqué ci-dessus:
- Ne pas utiliser de boucles ou goto
- Les fonctions ne peuvent pas s'appeler
- Faites ce que vous voulez dans la "boucle"
Si vous voulez implémenter quelque chose et que les règles ne l'interdisent pas explicitement, allez-y et faites-le. Beaucoup de réponses ont déjà plié les règles.
rep(f){f();f();}
- il s'agit d'une instruction (une déclaration de fonction est une instruction dans certaines langues) qui permet l'exécution de code à plusieurs reprises. Est-ce interdit? Vous demandez du code pour implémenter une boucle. Si ce code est syntaxiquement une instruction, vous venez de le refuser. Un autre exemple: f(b) { b(); g(b); }; g(b) { f(b); }
. Je dirais que f
c'est une fonction récursive (en étant mutuellement récursif avec g
). Est-ce interdit?
function A
appelsfunction B
et desfunction B
appelsfunction A
pendant qu'une des fonctions exécute quelque chose. Puisque la fonction ne s'appelle pas elle-même, elle devrait être valide sur la base des critères ^. ^