斐波那契数列
Fibonacci数列的前几项为:1,1,2,3,5,8,13。其规律是第i项是第i-1项与第i-2项的加和。
现在你的任务是对于给定的两个数字x和y,找到Fib[x]与Fib[y]的最小公倍数,其中Fib[i]为Fibonacci数列的第i项,F[1] = F[2] = 1。
应金老师的要求,你们可以尽情暴力这道题了。
Input
本题为多组数据输入。
每组数据只有两个整数x和y(0 < x,y <= 35)。
Output
输出一个整数代表Fib[x]与Fib[y]的最小公倍数。
Sample Input
1 2
1 3
Sample Output
1
2
#include <iostream>
using namespace std;
int F(int n)
{
int F[47];
F[1]=1;
F[2]=1;
for (int i=3;i<=n;i++)
{
F[i]=F[i-1]+F[i-2];
}
return F[n];
}
int hcf(int x, int y)
{
if(x%y==0) return y;
else return hcf(y,x%y);
}
int lcd(int x, int y)
{
int c;
c=x*y/hcf(x,y);
return c;
}
int main()
{
int a,b,n,m,x,y;
while(cin >> a >> b)
{x=F(a);
y=F(b);
n = hcf(x,y);
m = lcd(x,y);
cout << m << endl;}
return 0;
}
样例都能过,但交上去就是答案错误,,,
[此贴子已经被作者于2019-12-21 20:08编辑过]