【题解】WebGoC 112333.交通灯信号灯

题目描述

交通信号灯由红、黄、绿三种颜色组成,每种颜色都有其特定的含义和规则。红灯表示禁止通行、绿灯表示准许通行、黄灯表示警示。横向信号灯的排列顺序:红灯左、黄灯中、绿灯右。有倒计时功能的信号灯,在黄灯位置显示倒计时。如下图所示:


小C观察发现他学校门口的交通信号灯显示状态有如下规律:

|----------------------------------------|
| 第一盏 红灯长亮60秒,灭65秒。 |
| 第二盏 灭50秒,红灯倒计时10秒,灭50秒,绿灯倒计时10秒,黄灯亮5秒。 |
| 第三盏 灭60秒,绿灯长亮60秒,灭5秒。 |


如果从上图的最左边的初始状态开始计时,请你用webgoc 软件画出t秒时交通信号灯的显示状态。


绘图说明:交通信号灯是一个200*60的黑色(0号色)实心长方形底座,横向分布了三个半径为25的实心圆,圆的间距为10。灯亮时颜色分别为1号色、13号色和3号色,灯灭时颜色为8号色。倒计时字号可以用命pen.textSize(30)设置。


输入格式

输入有一个数据:t 秒(1<=t<=3600),表示时间。


输出格式

请画出t秒时交通信号灯的显示状态。


输入/输出例子1

输入:

366

输出:


输入/输出例子2

输入:

51

输出:


输入/输出例子3

输入:

122

输出:


参考答案

cpp 复制代码
int main(){
    int t,x;
    cin>>t;
    x=t%125;
    p.speed(10).up();
    p.rr(200,60,0).oo(25,8);
    p.moveTo(-60,0).oo(25,8);
    p.moveTo(60,0).oo(25,8);
    if(x==0)
        p.moveTo(0,0).oo(25,13);
    else if(x<=50)
        p.moveTo(-60,0).oo(25,1);
    else if(x<=60)
    {
        p.moveTo(-60,0).oo(25,1);
        p.moveTo(0,0).text(61-x,1,30);
    }
    else if(x<=110)
        p.moveTo(60,0).oo(25,3);
    else if(x<=120)
    {
        p.moveTo(60,0).oo(25,3);
        p.moveTo(0,0).text(121-x,3);
    }
    else
        p.moveTo(0,0).oo(25,13);
    p.hide();
    return 0;
}

题目链接:

https://v1.51goc.com/level/program/122/112333

(进去后要登录)