이 문제에서는 두 개의 숫자 N과 M이 제공됩니다. 우리의 임무는 C++에서 두 개의 피보나치 수의 LCM을 찾는 프로그램을 만드는 것입니다. .
문제 설명 − N번째와 M번째 피보나치 수를 찾습니다. 그런 다음 두 숫자의 LCM을 찾고 결과를 반환합니다.
피보나치 수
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377....
문제를 이해하기 위해 예를 들어 보겠습니다.
입력 :N =4, B =9
출력 :
설명
4번째 피보나치 수는 2입니다.
9번째 피보나치 수는 21입니다.
LCM은 42입니다.
솔루션 접근 방식
문제를 해결하려면 N과 M의 피보나치 수를 찾아야 합니다. 그런 다음 숫자의 LCM을 찾습니다.
예시
#include <iostream>
using namespace std;
long int fibo(int N){
long int a=0,b=1,c;
for(int i=2; i< N;i++) {
c=a+b;
a=b;
b=c;
}
return c;
}
int findLCM(int a, int b){
int max, step, lcm;
lcm = 0;
if(a > b)
max = step = a;
else
max = step = b;
while(1) {
if(max%a == 0 && max%b == 0) {
lcm = max;
break;
}
max += step;
}
return lcm;
}
int CalcFiboLCM(int N, int M) {
int fiboN = fibo(N);
int fiboM = fibo(M);
return findLCM(fiboN, fiboM);
}
int main() {
int N = 5, M = 14;
cout<<"The LCM of two Fibonnaci number is "<<CalcFiboLCM(N, M);
return 0;
} 출력
The LCM of two Fibonacci number is 699