Это код, который я написал для отображения последовательности Фибоначчи. Может кто-нибудь сказать мне, почему это неправильно, и как я могу это исправить? Я чувствую, что моя логика правильная, но способ исполнения - нет. Есть ли способ изменить одну и ту же программу, чтобы она работала?Последовательность Fibonacci в C++ (не работает)
#include<iostream>
using namespace std;
int main()
{
int a = 0, b = 1, prev1, prev2,i = 0;
while (i <= 100)
{
prev1 = b+a;
prev2 = b;
a = prev1 - prev2;
prev1 = prev1 + prev2;
cout << "prev1 = \n"<<prev1<<"\n";
i++;
/*
Logic I Used.
a = 0
prev2= b = 1
prev1= a+b= 1
prev1 + prev2 = (a+b)+(b)= 2
*/
}
return 0;
}
Похоже, вам, возможно, потребуется научиться использовать отладчик для выполнения кода. С хорошим отладчиком вы можете выполнить свою программу по очереди и посмотреть, где она отклоняется от ожидаемого. Это важный инструмент, если вы собираетесь заниматься программированием. Дальнейшее чтение: ** [Как отлаживать небольшие программы] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) ** – NathanOliver
С небольшим количеством дополнительного вывода вы можете быть в состоянии обнаружить ошибку. См. Http://ideone.com/FhTz0I. –
Ваша логика * * * правильно. Вы получаете 2 для 'prev1 + prev2'. Но тогда вы ничего не меняете ... последовательности Fibboncai полагаются на число, увеличивающее право? – Samidamaru