P9022

· · 题解

题意

输入一个字符串,前两个数字和为奇数时输出 \text{left} ,为非零偶数时输出 \text{right} ,为 0 时输出上次的答案。 并且每次都输出最后三位数字字符。

做法

每次输入后模拟判断,再用一个字符串来记录上次的答案

#include <cstdio>
#include <string>
#include <iostream>

using namespace std;

int main()
{
    string s,k;cin >> s;//k用来记录上次的答案
    while(s != "99999")//当读入为99999时跳出
    {
        int sum = s[0]-48+s[1]-48;//将数字字符转换为数字,其实这里不转换也可以,不影响奇偶性,不过判断是否为零要变为判断是否为96
        if (!sum) cout << k;//为零直接输出上次答案
        else if (!(sum&1)) printf("right"),k = "right"; //判断是否为偶数,sum&1相当于sum&2
        else printf("left"),k = "left";
        printf(" %c%c%c\n",s[2],s[3],s[4]);//输出后三个字符
        cin >>s;
    }
}