OpenJudge1.5.17 菲波那契数列
17:菲波那契数列
总时间限制: 1000ms 内存限制: 65536kB
描述
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
给出一个正整数k,要求菲波那契数列中第k个数是多少。
输入
输入一行,包含一个正整数k。(1 <= k <= 46)
输出
输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小
样例输入
19
样例输出
4181
题意
斐波那契数列:第一个和第二个数为1,接下来每个数都是前面2个数之和。
给定正整数k,求斐波那契数列的第k个数是多少。
思路
先特判k是否小于等于2,如果是,那么直接输出1,如果不是,那么进行for循环求解,循环从0~k-2,表示把前k个数除去后的剩下的数:循环的过程中让新的数等于前两个数的和。
代码实现
点击查看代码
#include "iostream"
#include "math.h"
#include "iomanip"
using namespace std;
int main()
{
int num1=1,num2=1;//定义int类型变量num1,num2
int k;//定义int类型变量k
cin>>k;//输入k
if(k<=2)//判断k是否小于等于2,如果是,那么直接输出1,如果不是,那么进入for循环
cout<<"1";
else{
for(int i=0;i<k-2;i++)//进入for循环
{
int temp=num1+num2;//定义int类型变temp=num1+num2
num1=num2;//把num1赋值为num2
num2=temp;//把num2赋值为temp
}
cout<<num2;//输出num2
}
return 0;//高兴的结束程序
}

浙公网安备 33010602011771号