为什么return 1就不行,return 0就可以

2206317497 edited 3 年,10 月前

我敲完代码提交发现显示runtime error,但我自己测试的数据结果是对的,代码没发现错误,最后把return 1改成return 0就可以了,我测试了几个别人的代码把return 0改成return 1也会提交显示runtime error,为什么?

#include<iostream>
using namespace std;

int main()
{
	int n, k, t[110],damage[110];
	for (int i = 0; i < 101; i++)
	{
		damage[i] = 0;//0表示没坏的台阶
	}
	cin >> n >> k;
	for (int i = 0; i < k; i++)
	{
		cin >> t[i];
		damage[t[i]] = 1;
	}

    long long  count[110];//到达每个台阶的方法数
	for (int i = 0; i < 100; i++)
	{
		count[i] = 0;
	}
	count[0] = 1;
	for (int i = 1; i < n+1; i++)
	{
		if (damage[i] != 1)//没坏则可计算方法数,否则为0
		{
			if (i == 1)
			{
				count[i] = count[i - 1];
			}
			else if (i == 2)
			{
				count[i] = count[i - 1] + count[i - 2];

			}
			else
			{
				count[i] = count[i - 1] + count[i - 2] + count[i - 3];
			}
		}
		
	}
	printf("%d",count[n]);
	return 1;
}

Comments