HJ17 坐标移动

Powered by:NEFU AB-IN

Link

文章目录

HJ17 坐标移动

题意

开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。

思路

熟练运用getline分隔字符串

在C++中,<< 运算符用于输出数据到流中,包括标准输出流(cout)和其他类型的流,例如文件流或字符串流。这种运算符的设计是为了与 >> 运算符(用于从流中读取数据)形成对称性。

这个设计的目的是提供一种直观的方式来操作流,使代码易于理解和编写。当你使用 << 运算符时,你可以将数据从程序输出到流中,就像你在控制台或文件中看到的输出一样。这样的操作符重载让C++的输入输出操作看起来更像自然语言,使代码更易于阅读和维护。

总之,<< 运算符表示输出(写入)数据到流中,而 >> 运算符表示从流中读取数据,这种设计是为了让C++代码更具可读性和易用性。

代码

cpp 复制代码
#include <bits/stdc++.h>
#include <cctype>
#include <sstream>
using namespace std;
#define int long long
#undef int

#define SZ(X) ((int)(X).size())
#define ALL(X) (X).begin(), (X).end()
#define IOS                                                                                                            \
    ios::sync_with_stdio(false);                                                                                       \
    cin.tie(nullptr);                                                                                                  \
    cout.tie(nullptr)
#define DEBUG(X) cout << #X << ": " << X << '\n'

const int M = 70, N = 4e4 + 10, INF = 0x3f3f3f3f;


signed main() {
    IOS;
    int x = 0, y = 0;
    string s;
    getline(cin, s);

    stringstream ss;
    ss << s;

    while (getline(ss, s, ';')) {
        if (SZ(s) == 2 && isdigit(s[1]) || SZ(s) == 3 && isdigit(s[1]) &&
                isdigit(s[2])) {
            int num = atoi(s.substr(1).c_str());

            switch (s[0]) {
                case 'A':
                    x -= num;
                    break;
                case 'S':
                    y -= num;
                    break;
                case 'W':
                    y += num;
                    break;
                case 'D':
                    x += num;
                    break;
            }
        }


    }

    cout << x << "," << y;


    return 0;
}
相关推荐
hanlin034 小时前
动态规划专练:力扣第1035、392题
算法·leetcode·动态规划
不正经学生4 小时前
C语言大小端字节序:内存里字节的排列顺序
c语言·开发语言·arm开发·c++·算法·c#
大模型探索者4 小时前
2026金融大模型训推平台选型指南:主流厂商横向对比与私有化落地
人工智能·算法·金融
依然鸣5 小时前
PTA团体程序设计天梯赛L2真题讲解L2-001-004
经验分享·学习·算法·深度优先·pat考试
杨航 AI7 小时前
** AI 面试算法 50 题清单**,不是单纯的 LeetCode 题号列表,而是按照“**考察概率 × 面试价值 × 你当前准备方向**”排序
算法·leetcode·面试
m0_7202450113 小时前
1543.统计好三元组(简单)
开发语言·算法
To_OC14 小时前
LC 560 和为 K 的子数组:前缀和配哈希表,这对组合我是真的服了
javascript·算法·程序员
hans汉斯15 小时前
《软件工程与应用》期刊推荐&10月版面征稿中
图像处理·人工智能·深度学习·算法·音视频·软件工程
叠层归一研究院15 小时前
AGI 系统(八):符号范畴嵌入函子 — SymCat ↪ C_M107 严格化
c语言·开发语言·人工智能·算法·transformer·agi
其美杰布-富贵-李16 小时前
08 进阶评估指标与算法特定指标
人工智能·算法