原题地址
一道水题,想麻烦了,卡了半天,

#include<iostream>
#include<vector>
#include<bits/stdc++.h>
//#include<math.h>
using namespace std;


int gcd(int n){
    int sum=1;
    int num[555]={0,1,2,3},k=2;
    for(int i=4;i<=n;i++)
        num[i]=num[i-1]+num[i-3];

    return num[n];
}
int main( )
{
    int n,m ;
   while(cin >>n&&n){
     cout<<gcd(n)<<endl;
   }

    return 0;

}