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;
    }
    
  • 相关阅读:
    Codeforces Round #470 (rated, Div. 2, based on VK Cup 2018 Round 1)C. Producing Snow
    day69 Django--Form组件
    day68 Django--中间件
    day67 Cookie&Session
    day66 AJAX
    day62 Django框架--视图系统&路由系统
    day65 django--ORM3
    day63 django--ORM
    Day64 django--ORM2
    Day61 Django框架--模板语言2
  • 原文地址:https://www.cnblogs.com/zifeiynoip/p/11570743.html
Copyright © 2011-2022 走看看