Консультация № 187715
22.01.2014, 00:13
94.84 руб.
0 2 1
Уважаемые эксперты! Пожалуйста, помогите выполнить задание:
Требования к выполнению задания
Задания предполагают написание однопоточного консольного приложения
Java.К заданию дан перевод на русский язык, однако при выявлении
разночтений с английской версией приоритет будет отдан английской
(оригинальной) версии задания. Дополнительные условия являются
обязательными для выполнения.
Каждое приложение должно корректно обрабатывать все исключительные
ситуации, если такие имеются. Программа должна контролировать ввод
корректных данных. Ошибки должны отображаться в потоке ошибок.

123. The sum
The Fibonacci sequence of numbers is known: F1 = 1; F2 = 1; Fn+1 = Fn + Fn-
1, for n>1. You have to find S - the sum of the first K Fibonacci numbers.
123. Сумма
Последовательность Фибоначчи номеров дается так: F1 = 1; F2 = 1; Fn
+1 = Fn + Fn-1, для N> 1. Вы должны найти S - сумму первых K чисел
Фибоначчи.

Обсуждение

давно
Управляющий
143894
2148
24.01.2014, 09:54
общий
Обратите внимание на этот вопрос.
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Профессор
399103
482
24.01.2014, 18:33
общий
это ответ
Здравствуйте, Бакумова Ю.В.!

Код:

class Fibbonacci {
public static void main(String[] args) {
if (args.length < 1) {
System.out.println("Usage: java Fibbonacci k");
return;
}
int k = Integer.parseInt(args[0]);
System.out.println(sum(k));
}

static int sum(int k) {
int Fn2 = 1; // F_{n-2}
int Fn1 = 1; // F_{n-1}
int s = 0;

if (k >= 1) s += Fn2;
if (k >= 2) s += Fn1;
if (k > 2)
for (int i = 3; i <= k; ++i) {
int Fn = F_n(Fn2, Fn1);
s += Fn;
Fn2 = Fn1;
Fn1 = Fn;
}

return s;
}

static int F_n(int Fn2, int Fn1) {
return Fn2 + Fn1;
}
}
Форма ответа