C++编程实例:模拟机器人行走路径 | C++算法题解
C++编程实例:模拟机器人行走路径 - 东风谷早苗
这篇文章将带你解决一个有趣的C++编程问题,模拟一个机器人根据指令行走并计算其最终位置。
问题描述
东风谷早苗获得了一个可以自动行走的新型机器人。这个机器人可以根据输入的命令串进行移动,命令包括:
- 'E':向东移动一个单位长度- 'S':向南移动一个单位长度- 'W':向西移动一个单位长度- 'N':向北移动一个单位长度
机器人会循环执行命令串中的命令。你的任务是编写一个程序,计算出机器人执行T秒后所在的坐标位置。
初始位置为 (0, 0),坐标系定义如下:
- 向东移动:坐标变为 (X+1, Y)- 向南移动:坐标变为 (X, Y-1)- 向西移动:坐标变为 (X-1, Y)- 向北移动:坐标变为 (X, Y+1)
输入格式
- 第一行:一个字符串,表示早苗输入的命令串,保证至少有1个命令- 第二行:一个正整数T,表示机器人的行走时间
输出格式
输出两个整数,表示T秒时,机器人的坐标 (X, Y)
示例
输入:
ESSWWN10
输出:
-1 -2
代码实现c++#include #include
using namespace std;
int main() { string commands; int T;
cin >> commands >> T;
int x = 0, y = 0; int len = commands.length();
for (int i = 0; i < T; ++i) { char command = commands[i % len]; switch (command) { case 'E': x++; break; case 'S': y--; break; case 'W': x--; break; case 'N': y++; break; } }
cout << x << ' ' << y << endl; return 0;}
解题思路
- 首先,读取机器人的命令串和行走时间。2. 初始化机器人的坐标 (x, y) 为 (0, 0)。3. 使用循环遍历每个时间单位,根据当前命令更新机器人的坐标。4. 使用模运算 (
i % len) 来循环执行命令串。5. 最后,输出机器人最终的坐标位置。
总结
这道题目考察了基本的字符串处理、循环和条件语句的应用。通过模拟机器人的行走路径,我们可以更深入地理解编程的基本概念,并学习如何将实际问题转化为代码实现。
原文地址: https://www.cveoy.top/t/topic/oGP 著作权归作者所有。请勿转载和采集!