问题描述
受雾霾天气影响,某市决定当雾霾指数超过设定值时对车辆进行限行,假设车牌号全为数字,且长度不超过6位,限行规则如下:
(1)限行时间段只包括周一至周五,周六周日不限行;
(2)如果雾霾指数低于200,不限行;
(3)如果雾霾指数大于等于200且低于400,每天限行两个尾号的汽车,周一限行1和6,周二限行2和7,周三限行3和8,周四限行4和9,周五限行5和0;
(4)如果雾霾指数大于等于400,每天限行五个尾号的汽车,周一、周三和周五限行1,3,5,7,9,周二和周四限行0,2,4,6,8。
现在给出星期几、雾霾指数和车牌号,判断该车牌号是否限行。
输入说明
输入分为三个整数,第一个整数表示星期几(1~7,1表示周一,2表示周二,依次类推,7表示周日),
第二个整数表示雾霾指数(0~600),第三个整数表示车牌号,整数之间用空格分隔。
输出说明
输出为两个部分,第一部分为车牌最后一位数字,第二部分为限行情况,限行输出yes,不限行输出no。
输入样例
输入样例1
4 230 80801
输入样例2
3 300 67008
输出样例
输出样例1
1 no
输出样例2
8 yes
#include<stdio.h>
int main()
{
int n; // 星期
scanf ("%d ",&n);
int m; //雾霾指数
scanf ("%d ",&m);
int l, k; //车牌号
scanf ("%d", &l);
k= l % 10; //车牌尾号
if(n==6||n==7) //周末不限行
{
printf ("yes");
return 0;
}
else
{
if (m<200) //周内雾霾指数低于200,都不限行
{
printf("%d yes", k);
return 0;
}
else if (m>=200 && m<400) //雾霾指数高于等于200,低于400的每天情况拉出来讨论一下
{
if (n==1) //周一
{
if (k==1||k==6)
{
printf("%d yes", k);
return 0;
}
else
{
printf ("%d no", k);
return 0;
}
}
if (n==2) //周二
{
if (k==2||k==7)
{
printf("%d yes", k);
return 0;
}
else
{
printf ("%d no", k);
return 0;
}
}
if (n==3) //周三
{
if (k==3||k==8)
{
printf("%d yes", k);
return 0;
}
else
{
printf ("%d no", k);
return 0;
}
}
if (n==4) //周四
{
if (k==4||k==9)
{
printf("%d yes", k);
return 0;
}
else
{
printf ("%d no", k);
return 0;
}
}
if (n==5) //周五
{
if (k==5||k==0)
{
printf("%d yes", k);
return 0;
}
else
{
printf ("%d no", k);
return 0;
}
}
}
if (m>=400) //雾霾指数大于400的拉出来讨论下
{
if (n==1||n==3||n==5)
{
if (k==1||k==3||k==5||k==7||k==9)
{
printf("%d yes", k);
return 0;
}
else
{
printf ("%d no", k);
return 0;
}
}
else
{
if (k==0||k==2||k==4||k==6||k==8)
{
printf("%d yes", k);
return 0;
}
else
{
printf ("%d no", k);
return 0;
}
}
}
}
return 0;
}
家人们,纯纯保姆级解答,我自己看都觉得啰嗦😅
但是但是,它好懂啊!
我当时初学时,也觉得这题很复杂好吧😂