C++ 解题:转向游戏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/nc++/n#include <iostream>/nusing namespace std;/n/nint main() {/n int n, command, count = 0;/n int direction = 0; // 0: 东, 1: 南, 2: 西, 3: 北/n/n cin >> n;/n for (int i = 0; i < n; ++i) {/n cin >> command;/n/n switch (command) {/n case 0: // 向右转/n direction = (direction + 1) % 4;/n break;/n case 1: // 向左转/n direction = (direction + 3) % 4;/n break;/n case 2: // 向后转/n direction = (direction + 2) % 4;/n break;/n }/n/n if (direction == 3) {/n count++;/n }/n }/n/n cout << count << endl;/n return 0;/n}/n/n/n代码解析:/n/n1. 变量声明:/n * n:命令的条数/n * command:每次命令的数字表示/n * count:小明回答'北'的次数/n * direction:小明当前面对的方向,用数字 0-3 表示,分别对应东、南、西、北/n/n2. 输入命令:/n * 使用 cin 输入命令的条数 n/n * 使用循环 for 输入 n 个命令,存入 command 变量/n/n3. 执行命令:/n * 使用 switch 语句根据 command 的值执行对应的操作/n * case 0:向右转,方向顺时针旋转,direction 加 1,然后模 4 保证方向值在 0-3 之间/n * case 1:向左转,方向逆时针旋转,direction 加 3,然后模 4 保证方向值在 0-3 之间/n * case 2:向后转,方向旋转 180 度,direction 加 2,然后模 4 保证方向值在 0-3 之间/n/n4. 判断是否回答 '北':/n * 如果 direction 等于 3,表示小明面对的是北,则 count 加 1/n/n5. 输出结果:/n * 使用 cout 输出 count 的值,即小明回答'北'的次数/n/n代码中使用了模运算 % 来确保方向值始终在 0-3 之间。/n/n希望这份代码和解析能够帮助你理解并解决转向游戏II的问题。祝你编程愉快!/n

C++ 解题:转向游戏II - 方向感测试

原文地址: https://www.cveoy.top/t/topic/knpi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录