各位大大們好啊!
以下是我這一題的code
#include<iostream>
using namespace std;
int main()
{
int n;
int vertex[77][77];
while(scanf("%d",&n) == 1)
{
if(n == 1)
printf("1\n");
else if(n ==2 || n == 3)
printf("2\n");
else if(n == 4)
printf("3\n");
else
{
for(int i=1;i<=n;i++)
{
if(i-2<=0)
{
vertex[i][i+2]=1;
vertex[i][i+3]=1;
}
else
{
int count_way=0;
if(i+2<=n)
{
if(i-2>0)
count_way+=vertex[i-2][i];
if(i-3>0)
count_way+=vertex[i-3][i];
vertex[i][i+2]=count_way;
count_way=0;
}
if(i+3<=n)
{
if(i-2>0)
count_way+=vertex[i-2][i];
if(i-3>0)
count_way+=vertex[i-3][i];
vertex[i][i+3]=count_way;
}
}
}
cout << vertex[n-3][n-1]+vertex[n-4][n-1]+vertex[n-2][n]+vertex[n-3][n] << endl;
}
}
return 0;
}
想請教各位高手一下,為什麼時間沒辦法更快?
是哪裡可以改善?還是有其他想法可以分享一下嗎? 謝謝!!