定义函数返回Fibonacci数列中某个由用户指定位置的元素。例如用户可以输入要查的数列元素的位置如8,程序应该回答:21。
输入格式:
每次输入整数代表要求的元素在数列里的位置,结束输入以ctrl+z结束(样例里用C代表ctrl+z)
输出格式:
当要求的元素位置在(0,1024]之间时,给出对应的数值,否则输出:Pos out of bound!
输入样例:
在这里给出一组输入。例如:
3
9
7
8
20
C
输出样例:
在这里给出相应的输出。例如
2
34
13
21
6765
代码实现(C++)
#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
long long Fibonacci(int n)
{
long long n1=1,n2=1,temp,num;
if(n<=0||n>1024)
return 0;
else
{
for(int i=3;i<=n;i++)
{
temp=n2;
n2=n1+temp;
n1=temp;
}
}
return n2;
}
int main()
{
int a[1025]={0},i=0,j;
cin >> a[i];
while(a[i]!=0)
{
i++;
cin >> a[i];
}
for(int j=0;j<i;j++)
{
if(Fibonacci(a[j])==0)
cout<< "Pos out of bound!";
else
cout << Fibonacci(a[j]);
if(j!=i-1)
cout << endl;
}
return 0;
}