程序在C ++中查找两个Fibonnaci数的LCM
为此,我们将提供两个数字。我们的任务是找到这两个位置的斐波那契数,然后找到并打印这两个值的最小公倍数。
示例
#include <bits/stdc++.h>
using namespace std;
const int MAX = 1000;
//creating an array
int f[MAX] = { 0 };
//returning n'th fibonacci number
int fib(int n){
//base cases
if (n == 0)
return 0;
if (n == 1 || n == 2)
return (f[n] = 1);
if (f[n])
return f[n];
int k = (n & 1) ? (n + 1) / 2 : n / 2;
f[n] = (n & 1) ? (fib(k) * fib(k) + fib(k - 1) * fib(k - 1)) : (2 * fib(k - 1) + fib(k)) * fib(k);
return f[n];
}
//finding GCD of those two values
int gcd(int a, int b){
if (a == 0)
return b;
return gcd(b % a, a);
}
int findLCMFibonacci(int a, int b){
return (fib(a) * fib(b)) / fib(gcd(a, b));
}
int main(){
int a = 3, b = 12;
cout << findLCMFibonacci(a, b);
return 0;
}输出结果
144
热门推荐
8 带清的简短祝福语
10 过年爱情祝福语大全简短
11 公司开年仪式祝福语简短
12 英文祝福语简短带名字
13 杨奕老师祝福语简短
14 新婚贺词简短的祝福语
15 送外卖祝福语大全简短
16 俄语祝福语贺卡文案简短
17 新婚祝福语大全简短精炼
18 小姨生日祝福语简短独特