南阳数乌龟——递归超时

数乌龟

 
描述
有一只母
乌龟
 
,它每年年初生一头小母 乌龟
 
。每头小母 乌龟
 
从第四个年头开始,每年年初生一头小母 乌龟
 
。请你计算第n年是共有多少只母 乌龟
 
(第一年是有一头母乌龟)
 
输入
输入多组测试数据,每组测试数据占一行,输入一个整数n(0<n<56)n含义如题所示,n=0是表示输入结束
输出
每组输出数据占一行,输出第在第n年的时候母乌龟的数量。

样例输入

2
4
5
0

样例输出
2
4
6

分析:此题可用递归,但是超时很厉害,提交了三次都没过!!还是用公式吧!

#include<stdio.h>
int main()
{
     int n;
 while(scanf("%d",&n),n)
 {
  int m1=1,m2=0,m3=0,m4=0,i;
  for(i=2;i<=n+2;i++)
  { 
   m4+=m3;
   m3=m2;
   m2=m1;
   m1=m4;
  }
  printf("%d ",m1+m2+m3+m4);
 }
 return 0;
}

原文地址:https://www.cnblogs.com/javawebsoa/p/3201383.html