(TOJ1063)养兔子

描述

一对成熟的兔子每月能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是一个月,而成熟后的第二个月才开始生小兔。某人领养了一对小兔子,一公一母,请问第N个月以后,他将会得到多少对兔子。

输入

测试数据包括多组,每组一行,为整数n(1≤n≤90)。
输入以0结束。

输出

对应输出第n个月有几对兔子(假设没有兔子死亡现象,而且是一夫一妻制)。

样例输入

1
2
0

样例输出

1
2

提示

数据类型可以用64位整数:__int64
 
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<ctype.h>

__int64 deal(int n)
{
     __int64 l,m,s;
     int flag;
     l=1,m=2;
     flag=3;
     s=0;
     while(flag<=n)
     {
         s=l+m;
         l=m;
         m=s;
         flag++;
     }
     if(n==1)
     { return 1;}
     else if(n==2)
     { return 2;}
     else
     {return s;}
}

void solve()
{
  int n;
  while(scanf("%d",&n) && n)
  {
      printf("%I64d\n",deal(n));
  }
}

int main()
{
    solve();   
    return 0;
}
原文地址:https://www.cnblogs.com/xueda120/p/3068663.html