斐波那契,ACM,用表(vector)实现

本文介绍了一种高效计算斐波那契数列的方法,通过预先计算并存储0到46项的斐波那契数值,实现快速查找,避免了重复计算,显著提高了计算效率。

斐波那契数定义

  1. F(0)=0
  2. F(1)=1
    3.F(n )=F(n-1)+F(n-2)(n>1且n是整数)
    列出斐波那契数为
    0 1 1 2 3 5 8 13 21 34……
    如果求第6项,则应该为8.
    输入描述
    输入数据含有不多于50个的正整数n(0<=n<=46).
    输出描述:
    对于每个你,计算出n项斐氏数,每个结果独占一行
    输入样例:
    6 10
    输出样例:
    8
    55
    注意:先把0到46项的斐波那契数求出来放在一个表(或者一个数组)中,然后直接查表即可,这样就不会超时
    这里是表(vector)
#include<iostream>
#include<vector> 
using namespace std;
int main(int argc ,char *argv[]){
	vector<unsigned int >v;
	unsigned int n;
	//先建表,把0~46项斐波那契数都算出来 
	v.push_back(0);
	v.push_back(1);
	for(int i=2;i<=46;i++){
		v.push_back(v[i-1]+v[i-2]);
	} 
	while(cin>>n){
		cout<<v[n]<<endl;
		
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值