试题名称 车牌限行
时间限制: 1 秒
内存限制: 256KB问题描述 问题描述
受雾霾天气影响,某市决定当雾霾指数超过设定值时对车辆进行限行,假设车牌号全为数字,且长度不超过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 week,smog_index;
long num;
scanf("%d %d %ld",&week,&smog_index,&num);
int last_num=num%10,flag=0;
if(smog_index<200){
flag=0;
} else if(smog_index<400) {
switch (week) {
case 1:
if(last_num==1 || last_num==6) flag=1;
break;
case 2:
if(last_num==2 || last_num==7) flag=1;
break;
case 3:
if(last_num==3 || last_num==8) flag=1;
break;
case 4:
if(last_num==4 || last_num==9) flag=1;
break;
case 5:
if(last_num==5 || last_num==0) flag=1;
break;
}
} else {
switch (week) {
case 1:
case 3:
case 5:
if(last_num==1 || last_num==3 || last_num==5
|| last_num==7 || last_num==9)
flag=1;
break;
case 2:
case 4:
if(last_num==2 || last_num==4 || last_num==6
||last_num==8 || last_num==0)
flag=1;
break;
}
}
if(flag) printf("%d yes\n",last_num);
else printf("%d no\n",last_num);
return 0;
}
代码结构很整齐,虽然没有注释,但是也很清晰了~