201803-1 试题名称: 跳一跳 C++

84 阅读1分钟

在这里插入图片描述

样例输入
1 1 2 2 2 1 1 2 2 0
样例输出
22

在这里插入图片描述
用一个数组将每次跳一跳的分数分数存起来,最后再相加。

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
	int s[33]={0};
	int a[33],l=0;
	while(1) {
		cin >> a[l];
		if(a[l] == 0) {
			break;
		}
		++l;
	}
	if(a[0]==2){
		s[0]=2;
	}else if(a[0]==1){
		s[0]=1;
	}
	for(int i = 1; i < l; i++) {
		if(a[i-1]==1&&a[i]==2){
			s[i]=2;
		}
		else if(a[i]==2 && a[i-1]==2){
			s[i]=s[i-1]+2; 
		}else if(a[i]==1){
			s[i]=1;
		}
	}
	int m=0;
	for(int i=0;i<l;i++){
		m+=s[i];
	}
	cout<<m<<endl;
	return 0;
}