数据结构1.17题:求K阶Fibonacci数第m项
来源:互联网 发布:mysql update if语句 编辑:程序博客网 时间:2024/05/24 07:18
/*
数据结构1.17题:求K阶Fibonacci数第m项
作者:shizhixin
Email:szhixin@gmail.com
Blog:http://blog.csdn.net/ShiZhixin
*/
#include "stdafx.h"
//计算pf地址后k个数之和
int Sum(int* pf,int k)
{
int i;
int sum=0;
for (i=0;i<k;i++)
{
sum+=*pf;
pf++;
}
return sum;
}
//对pf的前k-1项前移一个数
void Movef(int* pf,int k)
{
int i;
int* q=pf;
pf++;
for (i=0;i<k-1;i++)
{
*q=*pf;
q++;
pf++;
}
}
/*输入参数k:阶数 m:第m项 从0开始,比如:
k=2;
数列为0 1 1 2 3 5 ...
其中0为第0项,5为第5项*/
int KFibonacci(int k,int m)
{
if (m<0||k<2)
{
return -1;
}
int* f=new int[k];
int i;
for (i=0;i<k-1;i++) //前0- k-2项赋0
{
f[i]=0;
}
f[k-1]=1; //k-1项赋1
int KFib; //存放第m项值
if (m<k) //m<k,不用求和移动,直接释放内存并返回
{
KFib=f[m];
delete[] f;
return KFib;
}
for (i=k;i<=m;i++) //m>k
{
int sum=Sum(f,k);
Movef(f,k);
f[k-1]=sum;
}
KFib=f[k-1];
delete[] f;
return KFib;
}
int main(int argc, char* argv[])
{
int k,m;
scanf("%d%d",&k,&m);
printf("%d",KFibonacci(k,m));
return 0;
}
- 数据结构1.17题:求K阶Fibonacci数第m项
- 求K阶Fibonacci数列第m项的值
- 求m个区间中第k小的数
- Google算法题:M-求二叉搜索树的第K小的数
- 一道数据结构题,求k阶逆序数
- 求第n个Fibonacci数
- poj 2773 容斥原理求第k个与m互质的数
- poj2773求第K个与m互质的数
- POJ 2773 Happy 2006(求第k个与m互素的数)
- 数据结构题集(严蔚敏)1.17求k阶斐波那契序列的第n项值的函数算法
- poj 2761 多种数据结构算法求区间第k大的数
- 【数据结构】【排序】求第k大的数——用谢尔排序实现
- 百度笔试题:求非完全二叉树第m层第k个节点
- 【算法题】BFPRT算法:求第K小或者第K大的数
- O(lg m + lgn)时间复杂度求两个有序序列合并后第K大的数
- 复杂度为log(m+n)下求有序数组A和B有序合并之后第k小的数
- POJ 2773 Happy 2006(求第k个和m互素的数/欧拉函数)
- 求第K大的数~~
- css+div的一些易错点
- 第五章 7,8
- IWebBrowser2登陆网站(无验证码的)
- 深圳的实习生活(8)
- GCC的编译过程
- 数据结构1.17题:求K阶Fibonacci数第m项
- 位运算
- STL
- 在eclipse中使用findbug
- 大佬的免费
- 中兴软创笔试题一
- WCF与AJAX编程开发实践(1):AJAX基础概念和纯AJAX示例
- 中兴软创笔试题二
- 中兴软创笔试题三