Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Задача № 47. Вывести на экран сумму чисел Фибоначчи до n-ного включительно





Формулировка. Дано натуральное n (которое также может быть равно 0). Вывести на экран сумму чисел Фибоначчи до n -ного включительно. Например, при n = 3 нам необходимо получить сумму 0-го, 1-го, 2-го и 3-го членов последовательности.

Решение. Задача основана на предыдущей, так как здесь нам тоже необходимо найти каждое число Фибоначчи до n включительно, однако теперь мы должны прибавлять найденные числа к некоторой переменной суммы (sum), которая потом будет выведена на экран.

Используем код предыдущей задачи:

readln(n);

fib0:= 0;

fib1:= 1;

for i:= 2 to n do begin

fib:= fib1 + fib0;

fib0:= fib1;

fib1:= fib

end;

if n = 0 then fib1:= 0;

writeln(fib1);

Чтобы переделать этот код по текущему назначению, мы должны добавить в цикл прибавление найденного числа Фибоначчи к переменной sum. Например, так:

for i:= 2 to n do begin

fib:= fib1 + fib0;

sum:= sum + fib;

fib0:= fib1;

fib1:= fib

end;

Кроме того, следует исправить вывод ответа, так как нам необходимо вывести не последнее найденное число Фибоначчи, а сумму найденных чисел:

writeln(sum);

Очевидно, что вход в цикл не происходит при n = 0 и n = 1. Следовательно, правильную обработку этих случаев мы должны обеспечить инициализацией значений переменной sum, как мы это делали в предыдущей задаче.

Так как сумма нулевого и 1-го чисел Фибоначчи равна 1, то sum можно инициализировать значением 1. При входе в цикл первые два числа уже обработаны, поэтому при вводе n >= 2 накопление суммы также будет верным. Но очевидно, что в случае n = 0 необходимо инициализировать переменную sum значением 0. Реализовать эти два варианта можно так:

if n = 0 then sum:= 0 else sum:= 1;

Код:

1. program FibonacciNumbersSum; 2. 3. var 4. fib0, fib1, fib, sum: integer; 5. i, n: byte; 6. 7. begin 8. readln(n); 9. fib0:= 0; 10. fib1:= 1; 11. if n = 0 then sum:= 0 else sum:= 1; 12. for i:= 2 to n do begin 13. fib:= fib1 + fib0; 14. sum:= sum + fib; 15. fib0:= fib1; 16. fib1:= fib 17. end; 18. writeln(sum) 19. end.

Date: 2015-11-14; view: 378; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.008 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию