Imprimer les nombres de fibonacci jusqu'tp de 15 000 C#

J'ai vu des questions similaires(mais en C) -- Le calcul des Nombres de Fibonacci de manière Récursive en C au sujet de mon problème.

Je suis un peu coincé sur la façon de garder à l'impression des nombres de fibonacci jusqu'à ce qu'il atteigne environ 40 000 personnes, en C# dans mon application console, Comment puis-je y parvenir?

E. G, je veux que la demande pour ce faire:

0
1
1
2
3
5
8

and so on.

Grâce.
Je déteste dire cela, mais j'ai eu une trouvaille, et résolu!

Voici ce que j'ai fait:

static void Main(string[] args)
{
    int num1 = 0;
    int num2 = 1;
    int sum = 1;
    while (num1 <= 15000)
    {
        sum = num1 + num2;
        num1 = num2;
        num2 = sum;
       Console.WriteLine(num2);
    }
    Console.ReadLine();
}
  • Finalement, vous n'en avaient plus d'espace de pile si vous procédez de cette manière récursive, ce qui va se passer bien avant que se termine jamais.
  • Si c'est de manière récursive, vous vous retrouverez avec un débordement de pile, tôt ou tard.
  • Qu'avez-vous fait jusqu'à présent? Qu'est-ce spécifiquement êtes-vous à avoir des problèmes avec? Montre-nous ton code. Souvent, les gens veulent que les autres à faire leurs devoirs pour eux si vous avez besoin de nous montrer que vous essayez avant que les gens de l'aide.
  • Êtes-vous de demander de l'aide de la conversion de C à C# dans l'exemple ci-dessus?
  • Vous avez besoin d'une sorte de sortie de vérifier dans votre récursivité fonction pour vérifier votre 40k condition.
  • Vous pouvez déballer tout algorithme récursif dans un processus itératif, à l'aide d'une boucle while et une variable d'état.
  • Désolé, j'ai mis à jour avec une référence à ce que j'ai fait jusqu'à présent.
  • Je ne suis pas de faire ses devoirs.
  • Ce serait bien si C# pourrait faire la queue la récursivité...
  • Aucune idée de pourquoi voulez-vous exécuter ce pour toujours. Je ne suis pas C# expert, mais j'ai entendu C# a quelques fonctionnelle de la programmation des fonctions. Peut-être que si vous voulez une suite infinie vous pourriez mettre en œuvre certaines paresseux séquence ou quelque chose?
  • L'algorithme récursif de Fibonacci est dans la question. Vous nous demandez de faire votre propre travail pour vous, si ce n'est en effet pas de devoirs, que je trouve difficile à croire.
  • Je peux garantir à 100% que ce n'est pas de devoirs. Et je l'ai résolu.
  • Ce que vous avez modifié dans n'est pas récursive.
  • Certaines versions de la gigue va faire la queue de la récursivité. Cependant, depuis fib se répète deux fois dans un typique récursive mise en œuvre, il n'est pas trivial de le transformer en une queue-forme récursive. Notez aussi que même si vous pourriez transformer en une queue récursive forme, la naïve récursive fib est toujours exponentielle dans le temps. Si vous voulez une solution récursive, préférable d'utiliser un memoizer; mieux encore est d'utiliser une solution itérative ou de calculer les nombres directement en utilisant le nombre d'Or.
  • Comme @EricLippert mentiones, utilisez la forme fermée de la solution de stackoverflow.com/a/8334397/8384
  • eh bien, qui m'a convaincu.
  • stackoverflow.com/a/8333602/901059

InformationsquelleAutor H Bellamy | 2011-11-30