C++解题:转向游戏II - 方向感测试
转向游戏II - 方向感测试/n/n## 题目描述/n/n小明自认为方向感很好,请小红来测试。小红先让小明面对'东'方立正站好,然后发出 '向左转'、'向右转' 或 '向后转' 的命令。每个命令执行后,小明都正确地说出了他面对的方向。/n命令是以数字方式表达:$0$ 代表 '向右转',$1$ 代表 '向左转',$2$ 代表 '向后转'。/n/n## 输入格式/n/n从标准输入读入数据。/n输入共两行。第一行是一个正整数 $n$($1//le n//le 10,000$),代表命令的条数;第二行是 $n$ 个整数,每个整数是 $0$、$1$ 或 $2$,代表小红发出的口令。/n/n## 输出格式/n/n输出到标准输出。/n一个整数,代表小明回答 '北' 的次数。/n/n## 样例 #1/n/n### 样例输入 #1/n/n/n5/n0 1 0 0 1/n/n/n### 样例输出 #1/n/n/n0/n/n/n## 提示/n/n## 子任务/n对于 $30/%$ 的数据,$n//le10$;/n对于 $50/%$ 的数据,$n//le100$;/n对于 $70/%$ 的数据,$n//le1,000$;/n对于 $100/%$ 的数据,$n//le10,000$。/n特别地,对于其中 $20/%$ 的数据,小红发出的命令仅有一种。/n/n## C++代码/n/ncpp/n#include <iostream>/nusing namespace std;/nint main()/n{/n int n, ans = 0; // ans 记录方向为北的次数/n cin >> n;/n int dir = 0; // dir 记录当前方向,初始为东/n while (n--)/n {/n int x;/n cin >> x;/n if (x == 0) // 向右转/n dir = (dir + 1) % 4;/n else if (x == 1) // 向左转/n dir = (dir + 3) % 4; // 向左转相当于向右转三次/n else // 向后转/n dir = (dir + 2) % 4; // 向后转相当于向右转两次/n if (dir == 0) // 如果当前方向为北,则方向为北的次数加1/n ans++;/n }/n cout << ans << endl;/n return 0;/n}/n
原文地址: https://www.cveoy.top/t/topic/knrT 著作权归作者所有。请勿转载和采集!