深入浅出学算法005-数7

任务内容

Description 逢年过节,三五好友,相约小聚,酒过三旬,围桌数七。 "数七"是一个酒 桌上玩的小游戏。就是按照顺序,某人报一个10以下的数字,然后后面的人依 次在原来的数字上加1,并喊出来,当然如果要喊的数包含7或者是7的倍数, 那么不能直接喊,可以敲一下筷子,否则就算输,要罚酒一杯。

Input

多组测试数据,先输入整数T表示组数, 每组测试数据输入一个10以下的正整数,

Output

对于每组测试数据,输出在一行,要求从小到大输出所报数(含)到100之 间所有不能喊的数字

cpp 复制代码
#include <stdio.h>

// 判断是否包含7或者是7的倍数
// 函数接受一个整数参数num
// 通过检查num是否能被7整除,或者个位数字是否为7,或者十位数字是否为7来判断
// 如果满足上述任何一个条件,就返回1,表示该数字是受限制的(即包含7或者是7的倍数)
// 如果都不满足,则返回0,表示该数字是正常的,可以喊出来的数字
int isRestricted(int num) {
    // 如果num能被7整除,说明是7的倍数,返回1
    if (num % 7 == 0) {
        return 1;
    }
    // 如果num的个位数字是7,返回1
    if (num % 10 == 7) {
        return 1;
    }
    // 如果num除以10的商是7,说明十位数字是7,返回1
    if (num / 10 == 7) {
        return 1;
    }
    // 如果上述条件都不满足,返回0
    return 0;
}

int main() {
    int T;
    // 使用scanf函数从标准输入读取一个整数,赋值给T
    // T表示接下来要进行的测试数据的组数
    scanf("%d", &T);

    // 进入循环,每次循环处理一组测试数据,循环次数由T决定
    while (T--) {
        int start;
        // 使用scanf函数从标准输入读取一个整数,赋值给start
        // start表示每组测试数据中开始报数的那个10以下的正整数
        scanf("%d", &start);

        // 从start开始,到100为止,逐个检查数字
        for (int i = start; i <= 100; i++) {
            // 调用isRestricted函数判断当前数字i是否是受限制的数字
            if (isRestricted(i)) {
                // 如果是受限制的数字,使用printf函数将其输出到标准输出,后面跟一个空格
                printf("%d ", i);
            }
        }
        // 每组测试数据输出完受限制的数字后,换行
        printf("\n");
    }

    return 0;
}
相关推荐
ylfhpy43 分钟前
Java面试黄金宝典30
java·数据库·算法·面试·职场和发展
明.2441 小时前
DFS 洛谷P1123 取数游戏
算法·深度优先
简简单单做算法3 小时前
基于mediapipe深度学习和限定半径最近邻分类树算法的人体摔倒检测系统python源码
人工智能·python·深度学习·算法·分类·mediapipe·限定半径最近邻分类树
Tisfy4 小时前
LeetCode 2360.图中的最长环:一步一打卡(不撞南墙不回头) - 通过故事讲道理
算法·leetcode··题解
LuckyAnJo4 小时前
Leetcode-100 链表常见操作
算法·leetcode·链表
双叶8365 小时前
(C语言)虚数运算(结构体教程)(指针解法)(C语言教程)
c语言·开发语言·数据结构·c++·算法·microsoft
工一木子5 小时前
大厂算法面试 7 天冲刺:第5天- 递归与动态规划深度解析 - 高频面试算法 & Java 实战
算法·面试·动态规划
invincible_Tang7 小时前
R格式 (15届B) 高精度
开发语言·算法·r语言
独好紫罗兰8 小时前
洛谷题单2-P5715 【深基3.例8】三位数排序-python-流程图重构
开发语言·python·算法
序属秋秋秋8 小时前
算法基础_基础算法【高精度 + 前缀和 + 差分 + 双指针】
c语言·c++·学习·算法