有大佬帮帮忙吗
某城市车辆限行规则:当日期为奇数时,则车牌号尾数为奇数的车辆不限行,车牌号尾数为偶数的车辆限行;当日期为偶数时,则车牌号尾数为偶数的车辆不限行,车牌号尾数为奇数的车辆限行。请编程判断车辆是否限行。输入格式:
输入数据分别为日期(整型),车牌号(5位字符串,最后一位是数字),空格隔开。
输出格式:
不限行输出:车牌号 Pass
限行输出:车牌号 Restriction
int xx(const char* num,int date)
{
return(num%2)^(date%2);
}
// 定义一个日期
unsigned int date;
// 定义一个五位数的车牌
char car_number;
// 获取简单的输入
std::cin >> date >> car_number;
// 得到最后一个车牌数字(字符转数字,用char和unsigned int表示都一样)
char last_car_number = car_number - '0';
// 最后比较日期和车牌最后一位数字,否同奇同偶输出"Pass",不同输出”Restriction".
// 这一步方法就挺多了
// 用普通的奇偶法则:(date + last_car_number) % 2 ? "Restriction" : "Pass"
// 普通的奇偶法则和异或特性:(date % 2)^(last_car_number %2) ? "Pass" : "Restriction"
// 与和奇偶特性: ((date + last_car_number) & 1) ? "Restriction" : "Pass"
// 或和奇偶特性: ((date + last_car_number) | 0) ? "Restriction" : "Pass"
const char* result = (date + last_car_number) % 2 ? "Restriction" : "Pass";
std::cout << car_number << " " << result; 本帖最后由 傻眼貓咪 于 2022-12-25 14:48 编辑
#include <stdio.h>
int main(void) {
int d, n; // d: 日期, n: 尾数
char *num;
scanf("%d%s", &d, num);
n = *(num + 4) - '0';
printf("%s ", num);
printf((d&1)^(n&1) ? "Restriction" : "Pass");
return 0;
}
页:
[1]