giegie666 发表于 2022-12-23 21:28:09

有大佬帮帮忙吗

某城市车辆限行规则:当日期为奇数时,则车牌号尾数为奇数的车辆不限行,车牌号尾数为偶数的车辆限行;当日期为偶数时,则车牌号尾数为偶数的车辆不限行,车牌号尾数为奇数的车辆限行。请编程判断车辆是否限行。

输入格式:
输入数据分别为日期(整型),车牌号(5位字符串,最后一位是数字),空格隔开。

输出格式:
不限行输出:车牌号 Pass

限行输出:车牌号 Restriction

jhq999 发表于 2022-12-24 08:04:02


int xx(const char* num,int date)
{
        return(num%2)^(date%2);
}

rlllto 发表于 2022-12-24 12:01:46


    // 定义一个日期
    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 09:27:28

本帖最后由 傻眼貓咪 于 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]
查看完整版本: 有大佬帮帮忙吗