本文最后更新于 582 天前,其中的信息可能已经有所发展或是发生改变。
任务描述
本关任务:编写一个袋鼠过河问题的小程序。
题目描述
一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩,每隔一米就有一个,每个桩上面有一个弹簧,袋鼠跳到弹簧上就可以跳得更远。每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就表示袋鼠下一跳最多能够跳5米;如果为0,就表示会陷进去无法继续跳跃。河流一共n米宽,袋鼠初始在第一个弹簧上面,若跳到最后一个弹簧就算过河了。给定每个弹簧的力量,求袋鼠最少需要多少跳能够到达对岸。如果无法到达,输出-1。
编程要求
根据提示,在右侧编辑器 Begin-End 补充代码,完成袋鼠过河问题。
测试说明
平台会对你编写的代码进行测试:
输入描述:输入分两行,第1行是数组长度n(1<=n<=10000),第2行是每一项的值,用空格分隔。 输出描述:输出最少的跳数,若无法到达输出-1。
测试输入:
5
2 0 1 1 1
预期输出: 3
#include <iostream>
using namespace std;
int main(){
int n,count = 0,nowpos = 1;
cin>>n;
int power[n+1];
for(int i=1 ; i<n+1; i++){
cin>>power[i];
}
while(nowpos < n){
nowpos += power[nowpos];//跳
count++;
if(nowpos<n && !power[nowpos]){//跳不动了
cout<<"-1";
return 0;
}
}
cout<<count;
return 0;
}