参考LK上大佬的代码;
int main()
{
	int n,i , k = 0;  //  k表示最远能到达的距离;
    cin>>n;
    int a[n+1];
    for(int i = 0; i < n ; i++)
        cin>>a[i];
    for(i = 0; i < n ; i++)
    {
        if(i > k) 
        {
            cout<<"false"<<endl;
            break;
        }
        k = max(k,i+a[i]);
    }
    if( i == n)
        cout<<"true"<<endl;
	
	return 0;
} 
k 表示所能到达的最远距离,而i 表示当前距离;
所以 i > k 时表示不能到达;