当前位置: 首页> 科技> 能源 > 桃园南路上的红绿灯c++

桃园南路上的红绿灯c++

时间:2025/7/9 6:34:25来源:https://blog.csdn.net/D_31415926/article/details/140418962 浏览次数:2次

题目描述

XXX非常讨厌等红绿灯,于是他仔细观察了桃园南路与科技路交叉口的一个红绿灯的周期。

从七点半开始,这个红绿灯的每个周期会按照下面四个阶段变化:

  1. 先保持 x 分钟的红灯
  2. 然后保持 y 分钟的黄灯
  3. 然后保持 z 分钟的绿灯
  4. 最后保持 y 分钟的黄灯

每次第 4 步的黄灯结束后,又会按照 1~4 的顺序变化。

XXX 想知道第 q 分钟红绿灯的颜色

输入

一行空格隔开的四个整数:x,y,z,q

输出

输出一个字符串,如果第 q 分钟内红绿灯是红色就输出red,是黄色就输出yellow,是绿色就输出green。

样例输入

5 1 4 3 

样例输出

red

提示

样例解释

数据规模与约定

对于 100% 的数据 0≤x,y,z≤10,1≤q≤100 且 x,y,z 中至少有一个数大于 0。

  • 子任务 1(30 分):y=0 且 z=0。这是一个只有红灯的世界。
  • 子任务 2(30 分):y=0,这是一个没有黄灯的世界。
  • 子任务 3(40 分):没有特殊限制。

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){long long x,y,z,q,x1,y1,z1,z2;cin>>x>>y>>z>>q;x1=x;y1=x+y;z1=x+y+z;z2=x+y+z+y;while(1){if(q>=1&&q<=x1){//在红灯时间范围内cout<<"red";return 0;}if(q>x1&&q<=y1){//在黄灯时间范围内cout<<"yellow";return 0;}if(q>y1&&q<=z1){//在绿灯时间范围内cout<<"green";return 0;}if(q>z1&&q<=z2){//在黄灯时间范围内cout<<"yellow";return 0;}q=q-(x+y+z+y);//q不断减去一个周期}return 0;
}
关键字:桃园南路上的红绿灯c++

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: