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;//高兴的结束程序
}
posted @ 2022-08-19 10:22  HANDMICRO  阅读(185)  评论(0)    收藏  举报
1