Çözüldü C++ Fibonacci kodunda hatam ne?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

özgün deniz

Hectopat
Katılım
3 Aralık 2017
Mesajlar
918
Çözümler
7
Atıyorum 144 değerini girdiğimde ilk loop'da doğru sonuç veriyor. 2.kez 144 girdiğimde sapıtıyor. Bunun sebebi ve çözümü nedir?

C++:
#include <stdio.h>

int main(void) {
    int terim;

    while (1) {
        int a = 0, b = 1;
        printf("terim: "); scanf("%d", &terim);
       
        if (terim == 0) {
            printf("  terim numarasi: 1\n");
            printf("terimler toplami: 0\n");
            continue;
        } else if (terim == 1) {
            printf("  terim numarasi: 2 veya 3\n");
            printf("terimler toplami: 1 veya 2\n");
            continue;
        }

        int toplam  = 1;
        int counter = 2;
        int next_terim;  
        printf("%d, %d, ", a, b);

        while (1) {
            if (terim == next_terim) {
                break;
            }
           
            if (terim < next_terim) {
                printf("\naga yok ya :c\n");
                break;
            }
   
            next_terim = a + b;
            a = b;
            b = next_terim;
           
            counter++;
            toplam += next_terim;
           
            printf("%d, ", next_terim);          
        }

        if (terim == next_terim) {
            printf("\n  terim numarasi: %d\n", counter);
            printf(  "terimler toplami: %d\n", toplam);
        }
    }
   
    return 0;
}
 
Son düzenleyen: Moderatör:
Yukarı