Я проходил через эту проблему -
Коровы в городе FooLand - интересные животные.Одна из их специализаций связана с производством потомства.Корова в FooLand производит своего первого теленка (самка) в возрасте двух лет и продолжает производить других телят (одна самка в год).
Теперь фермер Гарольд хочет знать, сколько животных он будетв конце N лет, если мы предположим, что ни один из телят не умрет, учитывая, что изначально у него есть только одна самка?
Ввод:
В первой строке записано единственное целое числоТ обозначает количество тестовых случаев.Каждая строка теста содержит одно целое число N, как описано в задаче.
Вывод:
Для каждого теста вывести в новой строке количество животных, ожидаемое в конце N лет
Я решил это с помощью приведенного ниже кода-
public static void main (String[] args)
{
Scanner ab=new Scanner(System.in);
int t=ab.nextInt(); //number of test cases
for (int i=0;i<t;i++)
{
int n=ab.nextInt(); //years
int arr[]=new int[n];
arr[0]=1;
arr[1]=2;
if(n>2)
{
for(i=2;i<n;i++)
{
arr[i]=arr[i-1]+arr[i-2];
}
}
System.out.println(arr[arr.length-1]);
}
}
Но когда я искал в сети, они дали очень сложное решение в сети -
https://hackerranksolutionc.blogspot.in/2017/10/cows-of-fooland.html
Я попытался сопоставить вывод и обнаружил, что результат тот жедля небольших чисел, но отличается для очень большого числа.
Я хочу знать, что в моем решении что-то не так?