原文页面:http ://acm.whu.edu.cn/learn/problem/detail?problem_id=1036
这应该是一个简单的动态规划问题。我想出解决方案如下:
int main(void)
{
double d[501];
int i;
d[0] = d[1] = 1.;
d[2] = 2.;
for(i = 3; i<=500; i++)
d[i] = d[i-1] + d[i-2] + d[i-3];
int n;
while(scanf("%d", &n) == 1) {
if(n == 0) return 0;
printf("%.0lf\n", d[n]);
}
return 0;
}
但是提交后报错答案。我真的不知道为什么。