zoukankan      html  css  js  c++  java
  • 9.3练习题4 语句解析 题解

    题目出处:洛谷P1597

    题目描述

    一串长度不超过 255 的 PASCAL 语言代码,只有 a,b,c 3 个变量,而且只有赋值语句,赋值只能是一个一位的数字或一个变量,每条赋值语句的格式是 [变量]:=[变量或一位整数]; 。未赋值的变量值为 0 。输出 a、b、c 的值。

    输入格式

    一串(<255)PASCAL语言,只有a,b,c 3个变量,而且只有赋值语句,赋值只能是一个一位的数字或一个变量,未赋值的变量值为0。

    输出格式

    输出a,b,c 最终的值。

    样例输入

    a:=3;b:=4;c:=5;
    

    样例输出

    3 4 5
    

    问题分析

    基础模拟题。
    我们首先以一个字符串 s 来保存我们的输入。
    然后我们可以发现一个语句包括 5 个字符,形如 “X:=Y;”,其中 X 肯定是字符‘a’、‘b’、‘c’ 中的一个,而 Y 可能是 ‘a’、‘b’、‘c’ 或者数字 ‘0’ 到 ‘9’ 中的一个。
    然后分情况讨论,就能够得到 a、b、c 的值。
    实现代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    string s;
    int a, b, c;
    int main() {
        cin >> s;
        int len = s.length();
        for (int i = 0; i+4 < len; i += 5) {
            char d = s[i];
            char e = s[i+3];
            int f;
            if (isdigit(e)) {
                f = e - '0';
            }
            else {
                if (e == 'a') f = a;
                else if (e == 'b') f = b;
                else f = c;
            }
            if (d == 'a') a = f;
            else if (d == 'b') b = f;
            else c = f;
        }
        printf("%d %d %d
    ", a, b, c);
        return 0;
    }
    
  • 相关阅读:
    Mybatis入门
    Spring的xml文件配置方式实现AOP
    jquery简直是太酷炫强大了
    [Google Guava] 2.2-新集合类型
    小规模的流处理框架.Part 1: thread pools
    数据库三大范式和五大约束
    Hibernate:缓存
    MyBatis:缓存配置
    Python:协程
    微信公众号开发之测试账号
  • 原文地址:https://www.cnblogs.com/zifeiynoip/p/11570743.html
Copyright © 2011-2022 走看看