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 //le 10$;/n对于 $50/%$ 的数据,$n //le 100$;/n对于 $70/%$ 的数据,$n //le 1,000$;/n对于 $100/%$ 的数据,$n //le 10,000$。/n特别地,对于其中 $20/%$ 的数据,小红发出的命令仅有一种。/n/nC++ 代码/n/ncpp/n#include <iostream>/nusing namespace std;/n/nint main() {/n int n, command, northCount = 0;/n string direction = /'东/';/n/n cin >> n;/n for (int i = 0; i < n; ++i) {/n cin >> command;/n/n if (command == 0) { // 向右转/n if (direction == /'东/') direction = /'南/';/n else if (direction == /'南/') direction = /'西/';/n else if (direction == /'西/') direction = /'北/';/n else direction = /'东/';/n } else if (command == 1) { // 向左转/n if (direction == /'东/') direction = /'北/';/n else if (direction == /'北/') direction = /'西/';/n else if (direction == /'西/') direction = /'南/';/n else direction = /'东/';/n } else { // 向后转/n if (direction == /'东/') direction = /'西/';/n else if (direction == /'西/') direction = /'东/';/n else if (direction == /'南/') direction = /'北/';/n else direction = /'南/';/n }/n/n if (direction == /'北/') northCount++;/n }/n/n cout << northCount << endl;/n return 0;/n}/n/n/n代码解释:/n/n1. 使用 string direction = /'东/'; 初始化小明面对的方向。/n2. 使用循环读取每个命令,并根据命令更新 direction。/n3. 使用 if 语句判断每个命令对应的转向,并更新 direction。/n4. 每次更新 direction 后,判断是否为 ,如果是则 northCount 加 1。/n5. 最后输出 northCount 的值。/n/n注意:/n/n本代码示例仅供参考,你也可以使用其他方法来解决问题。例如,可以使用数组来存储方向,并使用模运算来计算转向后的方向。/n/n希望这个解答对你有所帮助。如果你还有其他问题,请随时提问。/n


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

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