Maison > développement back-end > C++ > le corps du texte

Comment pouvons-nous imprimer des nombres de manière séquentielle sans boucles ni instructions conditionnelles ?

Linda Hamilton
Libérer: 2024-11-27 03:33:14
original
529 Les gens l'ont consulté

How Can We Print Numbers Sequentially Without Loops or Conditional Statements?

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);
}
Copier après la connexion

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);
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal