Рекурсия в java , кто-нибудь может мне помочь?
Дана последовательность, определенная в соответствии с (1), которая рекурсивно описывается следующим образом:
pi =1( Для 0 ≤ i ≤ 2)
pi = a * p(i-2) + b * p(i-3) для i> 2
Варьируя значения a и b, можно вычислить множество других последовательностей. Писать сейчас
Java-программа, которая вычисляет все следующие элементы pi с i ≤ n и n ∈ N ∪ {0}. Сразу после запуска программы
Ваша программа примет три аргумента командной строки. Число n является первым аргументом командной строки
передавать. Параметр a передается в качестве второго аргумента командной строки. В качестве третьих
Аргумент командной строки передается программе. Он утверждает, что a, b ∈ Z.
Обратите внимание, что все аргументы командной строки должны присутствовать. Происходит при обработке
Аргументы командной строки ошибка или входные данные не соответствуют указанному здесь формату, поэтому
Выводится содержательное сообщение об ошибке, начинающееся с Error, и программа завершается.
Вычисляемые элементы последовательности pi вплоть до индексного числа n разделяются в строке ровно одной запятой
вывод осуществляется с помощью функции System.out.println (). Примитивная рекурсивная реализация
(1) определенное правило расчета будет пересчитывать одни и те же элементы последователя снова и снова. Посредством
При использовании так называемой таблицы поиска этого следует избегать. Это означает, что когда-то ранее неизвестный
Pi добавляется, значение pi добавляется в таблицу поиска. Поэтому
Эта процедура предназначена для предотвращения дорогостоящих вычислений и оптимизации времени выполнения. Выбирать
подходящая структура данных для реализации таблицы поиска
Что я уже пробовал:
public class Main { public static void main(String[] args) { System.out.println(pi(4)); } public static String pi(int n) { String result = ""; int a = 1; int b = 1; for (int i = 0; i <= n; i++) { if (i >= 0 && i <= 2) { result = 1 + ""; } else { result = a*pi(i - 2) + b*pi(i - 3) + ""; } if (i < n - 1) { result += ","; } } return result; } }