static int fibonacci1(int num) {
int[] nums = new int[num];
if (num == 1 || num == 2) {
return 1;
}
nums[0] = 1;
nums[1] = 1;
for (int i = 2; i < nums.length; i++) {
nums[i] = nums[i - 1] + nums[i - 2];
}
return nums[num - 1];
}
static int fibonacci2(int num) {
int result = 0;
if (num == 1 || num == 2) {
return 1;
}
int a = 1;
int b = 1;
for (int i = 2; i < num; i++) {
result = a + b;
a = b;
b = result;
}
return result;
}
static int fibonacci3(int num) {
int result = 0;
if (num == 1 || num == 2) {
return 1;
}
if (arr[num-1] != 0) {
return arr[num - 1];
}
return arr[num - 1] = fibonacci3(num - 1) + fibonacci3(num - 2);
}