Maison > Article > développement back-end > Comment pouvons-nous imprimer des nombres de manière séquentielle sans boucles ni instructions conditionnelles ?
Impression de nombres sans boucles ni conditions
En programmation, il est souvent nécessaire d'imprimer ou d'afficher une séquence de nombres. Une approche courante consiste à utiliser des boucles ou des instructions conditionnelles pour parcourir la plage souhaitée. Cependant, il est possible d'imprimer une série de nombres sans s'appuyer sur ces constructions.
Impression de 1 à 1000 en C ou C
Pour la tâche d'impression de nombres de 1 à 1000, une solution possible implique une fonction récursive :
#include <stdio.h> void main(int j) { printf("%d\n", j); (&&main + (&exit - &main)*(j/1000))(j+1); }
Cette fonction s'appelle de manière récursive, incrémenter le paramètre j jusqu'à ce qu'il atteigne la valeur de 1000. Pour éviter les erreurs de pointeur, l'opérateur d'adresse de & est utilisé avant le pointeur de fonction.
Version Standard C
Une version C plus standard de la fonction ci-dessus est la suivante :
#include <stdio.h> #include <stdlib.h> void f(int j) { static void (*const ft[2])(int) = { f, exit }; printf("%d\n", j); ft[j/1000](j + 1); } int main(int argc, char *argv[]) { f(1); }
Cette version utilise un tableau de pointeurs de fonction statique pour obtenir le même résultat. effet.
Conclusion
Bien que ces méthodes ne soient peut-être pas les solutions les plus efficaces ou les plus élégantes, elles démontrent la possibilité d'imprimer des séquences de nombres sans utiliser de boucles ou de conditions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!