CCF CSP 跳一跳 c++ java python 201803_1 100分
2019-03-11 21:24
621 查看
CCF CSP 跳一跳 c++ java python 201803_1 100分
问题描述
近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱。
简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束。
如果跳到了方块上,但没有跳到方块的中心则获得1分;跳到方块中心时,若上一次的得分为1分或这是本局游戏的第一次跳跃则此次得分为2分,否则此次得分比上一次得分多两分(即连续跳到方块中心时,总得分将+2,+4,+6,+8…)。
现在给出一个人跳一跳的全过程,请你求出他本局游戏的得分(按照题目描述的规则)。
输入格式
输入包含多个数字,用空格分隔,每个数字都是1,2,0之一,1表示此次跳跃跳到了方块上但是没有跳到中心,2表示此次跳跃跳到了方块上并且跳到了方块中心,0表示此次跳跃没有跳到方块上(此时游戏结束)。
输出格式
输出一个整数,为本局游戏的得分(在本题的规则下)。
样例输入
1 1 2 2 2 1 1 2 2 0
样例输出
22
数据规模和约定
对于所有评测用例,输入的数字不超过30个,保证0正好出现一次且为最后一个数字。
问题分析
这道题是csp认证的第一题,题目比较简单易懂,只要控制好逻辑,拿满分是很简单的事情。具体代码如下
c++代码如下:
#include<cstdio> #include<vector> using namespace std; int main(){ vector<int> vec; int temp; scanf("%d",&temp); while(temp != 0){ vec.push_back(temp); scanf("%d",&temp); } int result = 0; int flag = 0; for(int i = 0;i < vec.size();i++){ int ff = vec[i]; if(ff == 1) { result += 1; flag = 0; } else { if(flag == 0) { flag = 1; result += (2*flag); } else { flag += 1; result += (2*flag); } } } printf("%d\n",result); return 0; }
Java代码如下:
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class csp201803_1 { public static void main(String[] args) { Scanner input = new Scanner(System.in); List<Integer> list = new ArrayList<>(); int temp = input.nextInt(); while(temp != 0) { list.add(temp); temp = input.nextInt(); } int result = 0; int flag = 0; for(int i = 0;i < list.size();i++) { int ff = list.get(i); if(ff == 1) { result += 1; flag = 0; } else { if(flag == 0) { flag = 1; result += (2*flag); } else { flag += 1; result += (2*flag); } } } System.out.println(result); } }
python3代码如下:
if __name__=="__main__": temp = input().split(" ") li = [] for i in temp: if int(i) != 0: li.append(int(i)) result = 0 flag = 0 for i in range(len(li)): ff = li[i] if ff == 1: result += 1 flag = 0 else: if flag == 0: flag = 1 result += (2 * flag) else: flag += 1 result += (2 * flag) print(result)
ok!大功告成了,如果你有其他的方法或问题,欢迎在评论区交流!
相关文章推荐
- CCF CSP 棋局评估 java python 201803_4 100分
- CCF CSP 碰撞的小球 java python 201803_2 100分
- CCF Python题解(100分)201803-1 跳一跳
- CCF CSP 201612-3 权限查询(Java-100分)
- CCF CSP 201509-1 数列分段(Java-100分)
- CCF CSP 201604-1 折点计数(Java-100分)
- CCF CSP 最小差值 java 201712_1 100分
- CCF 201412-2 Z字形扫描 c++/java(100分)
- CCF CSP 201703-1 分蛋糕(Java-100分)
- CCF-CSP 通信网络 JAVA 201709-4 100分
- CCF CSP 公共钥匙盒 JAVA 201709-2 100分
- CCF CSP 分蛋糕 java 201703_1 100分
- CCF CSP 201509-2 日期计算(Java-100分)
- CCF CSP 201612-2 工资计算(Java-100分)
- CCF CSP 201709-1 打酱油(Java-100分)
- CCF CSP 最优灌溉 JAVA 201412_4 100分
- ccf csp考试201803-2碰撞的小球答案(python实现)
- CCF CSP 高速公路 JAVA 201509-4 100分
- CCF CSP 201612-1 中间数(Java-100分)
- CCF CSP 201609-1 最大波动(Java-100分)