Привет. требуется написать посл. Фиббоначи на Си ( без плюсов) для следущего условия
b) пока числа остаются не более N.( как я понимаю когда число Фибоначи меньше числа N)
Я уже составил программу когда последовательность чисел Фибоначчи 1, 1, 2, 3, 5
a) ровно N чисел;
#include<stdio.h>
int fibonacci(int n){return n<=2?1:fibonacci(n-1)+fibonacci(n-2);}
int main(){int k; {for(k=1;k<=20;k++)printf("%d\n",fibonacci(k)) ; getchar(); return 0;}
Пытался модифицировать ее используя do while но не получилось
Другие языки программирования и технологии
Как правильно использовать операторы цикла?
// for
#include <stdio.h>
int main() {
int n, prev, current, next, limit;
printf(" limit?.. ");
scanf_s("%i", &limit);
for (current = prev = n = 0, next = 1; current <= limit; n++) {
printf(" %i", current);
prev = current;
current = next;
next = prev + current;
}
fflush(stdin);
getchar();
return 0;
}
// do - while
#include <stdio.h>
int main() {
int n = 0, prev = 0, current = 0, next = 1, limit;
printf(" limit?.. ");
scanf_s("%i", &limit);
do {
printf(" %i", current);
prev = current;
current = next;
next = prev + current;
n++;
} while (current <= limit);
fflush(stdin);
getchar();
return 0;
}
// while
#include <stdio.h>
int main() {
int n = 0, prev = 0, current = 0, next = 1, limit;
printf(" limit?.. ");
scanf_s("%i", &limit);
while (current <= limit) {
printf(" %i", current);
prev = current;
current = next;
next = prev + current;
n++;
}
fflush(stdin);
getchar();
return 0;
}
#include <stdio.h>
int main() {
int n, prev, current, next, limit;
printf(" limit?.. ");
scanf_s("%i", &limit);
for (current = prev = n = 0, next = 1; current <= limit; n++) {
printf(" %i", current);
prev = current;
current = next;
next = prev + current;
}
fflush(stdin);
getchar();
return 0;
}
// do - while
#include <stdio.h>
int main() {
int n = 0, prev = 0, current = 0, next = 1, limit;
printf(" limit?.. ");
scanf_s("%i", &limit);
do {
printf(" %i", current);
prev = current;
current = next;
next = prev + current;
n++;
} while (current <= limit);
fflush(stdin);
getchar();
return 0;
}
// while
#include <stdio.h>
int main() {
int n = 0, prev = 0, current = 0, next = 1, limit;
printf(" limit?.. ");
scanf_s("%i", &limit);
while (current <= limit) {
printf(" %i", current);
prev = current;
current = next;
next = prev + current;
n++;
}
fflush(stdin);
getchar();
return 0;
}
Напишите по-человечески, что Вам нужно? Вы используете рекурсию - куда там еще и цикл впихнуть? Вы каждый раз пишите ряд из 20 чисел - т. е. количество их не запрашивается и всегда одно и то же? Что значит - не получилось - подробней нельзя? И вообще, что Вы хотите получить в итоге - с учетом описанных странностей, желательно - едва ли не пошагово.
Похожие вопросы
- напишите програму на с++ не используя оператор цикла
- Хорошо ли использовать бесконечный цикл for в C++?
- Вычислить выражение с помощью оператора цикла. Turbo Pascal.
- даны 3 разл целых числа a,b,c используя оператор GOTO составить программу для ввода чисел в порядке убывания
- Помогите пожалуйста составить программу на Паскале, используя оператор case
- Обработка исключительных ситуаций. Как правильно использовать? Как она применяется на практике в реальных программах?
- Какой оператор в Си позволяет досрочно завершить ВСЕ циклы (например если цикл в цикле) или как это вообще можно сделать
- C++. В операторе switch нельзя разве использовать case x? а x пробежать в цикле for?
- Каким циклом можно заменить оператор UpCase в pascale
- Заменить цикл условным оператором if