程序在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
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短