习题集1.17

来源:互联网 发布:杭州市行知小学校徽 编辑:程序博客网 时间:2024/05/01 09:45
 
#include <IOSTREAM>#include <VECTOR>using namespace std;int Fibonacci(int k,int m);int main(){int m,k;cout<<"k阶斐波那契"<<" ";cin>>k;cout<<"第m项为"<<" ";cin>>m;cout<<"结果是"<<endl;cout<<Fibonacci(k,m);cout<<endl ;return 0;}//k阶斐波那契数列,下标为m的项(从0开始)int Fibonacci(int k,int m){int temp = 0 ,pos = 0;//每次计算和暂存if (k < 2){cout<<"K输入不符合要求"<<endl;return -1;}vector<int>  fbarray;//容器存储数列,为后文计算for(int i = 0 ; i<k-1 ;++i)fbarray.push_back(0);//初始前k-1项(0->...->k-2)全部为0fbarray.push_back(1);if (m < k-1)return 0 ;if (m == k-1)return 1 ;for(i = 0 ;i< m-(k-1); ++i){temp = 0;for (int j = 0 ;j<fbarray.size() ; ++j)temp += fbarray[j];pos = i%k  ;fbarray[pos] = temp;}return temp ;}

原创粉丝点击