范闲


私信TA

用户名:541913460754

访问量:3520

签 名:

等  级
排  名 12104
经  验 990
参赛次数 1
文章发表 9
年  龄 0
在职情况 学生
学  校 郑州轻工业大学
专  业

  自我简介:

解题思路:先分析题意 以及根据给的样例可知

年份/n2345678.....n
母牛头数/f(n)234691319.....f(n-1)+f(n-3)

第一次的代码 使用递归 

#include<iostream>
using namespace std;
int f(int n){
 if(n < 5) return n;
 return f(n-1) + f(n-3);
}
int main(){
 int n;
 while(cin >> n ){
  if(n != 0) cout << f(n) << endl;
  else return 0;
 }
 return 0;
}

时间超限

然后就不用递归了

成功AC代码:

#include<iostream>
#include<cstdio>
using namespace std;
int a[60];
int main(){
 int n;
 while(scanf("%d",&n) && n){
  a[1]=1,a[2]=2,a[3]=3,a[4]=4;
  for(int i = 5; i <56;i++){
   a[i] = a[i-1] + a[i-3];
  }
  printf("%d\n",a[n]);
 }
}


 

0.0分

2 人评分

  评论区

  • «
  • »