hdu2018(귀속, 기억화 귀속)

3300 단어
물 문제인데 어쨌든 나를 데리고 동태 계획을 좀 세웠어?아니오, 귀속입니다.추이 관계도 내놓지 않았는데 아쉽게도 제목의 데이터가 너무 많아서 귀환과 보존이 이미 있는 재귀환 시간도 차이를 알아볼 수 없어요...
순귀환, 어떻게 이해: 바로 네가 생각하기에 다음 순간에 젖소의 수량은 지난 순간에 이미 수량에 증가할 수량을 더한 것과 같다. 4초 후에 갓 태어난 암소는 암소를 낳을 수 있는 암소로 자랄 수 있다. 증가할 수량은 현재 3초 전과 같다. 왜냐하면 현재의 3초 전부터 현재가 4초이기 때문에 암소를 낳을 수 있는 암소가 증가하기 때문이다.
#include<stdio.h>
int cow(int n)
{
    if(n<=4)
    return n;
    else
    return cow(n-1)+cow(n-3);
}
int main()
{
    int n,m;
    while(scanf("%d",&n)&&n)
    {
       m=cow(n);
       printf("%d
"
,m); } return 0; }

이미 계산한 점을 기억하고 따뜻하게 해라. 이 문제는 데이터가 너무 헤프다.
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[60],n;
int cow(int n)
{
    if(a[n]>0)
        return a[n];
    else
    {
        a[n]=cow(n-1)+cow(n-3);
        return a[n];
    }
}
int main()
{
   #ifdef yexiaoju
   freopen("Untitled2.txt","r",stdin);
   #endif // yexiaoju
   memset(a,0,sizeof(a));
   for(int i=1;i<=4;i++) a[i]=i;
   while(scanf("%d",&n)&&n)
  {
      int num=cow(n);
      printf("%d
"
,num); } return 0; }

좋은 웹페이지 즐겨찾기