oj79

#79:  菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求菲波那契数


时间限制:2 sec.  内存限制:128 MB. 

试题描述

菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求菲波那契数列中第k个数是多少。

输入格式

输入一行,包含一个正整数k。(1 <= k <= 46)

输出格式

输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小

样例输入
19

样例输出
4181

其它说明
#include<stdio.h>
int main()
{
    int n,k;
    while(scanf("%d %d",&n,&k)!=EOF)
    {
        int i,w=1,a=n;double m=200;
        for(i=1;i<2;)
        {
            m*=(1+1.0*k/100);//why?
            a+=n;
            w+=1;
            if(w>20)break;
            if(m<=a){break;}
        }
        if(w<=20)printf("%d
",w);
        else printf("Impossible
");
    }
    return 0;
}
/*#include<stdio.h>
int main()
{
    int N;
    double k;
    int i;
    int a,b;//a是累积的存款,b是当前的房价
    while(scanf("%d %d",&N,&k)!=EOF)
    {

        i=1;
        k=k/100;
        a=0;
        b=200;
        while(a<b&&i<=20)
        {
            i++;
            a=a+N;
            b=b*(1+k);

        }
        if(i<=20){
            printf("%d",i);
        }
        else{
            printf("Impossible");
        }
    }
    return 0;}*/

备注(第一个是正确的但我有些疑问,第二个也不知道那错了如果有人知道的可以写下评论)

原文地址:https://www.cnblogs.com/1079722822a/p/7746169.html