逢七过 | Seven Pass | str.find(‘7’)

题目:

逢 7 过是一个经典的游戏,游戏规则为从数字 1 开始轮流报数,凡是遇到任何带有数字 7 或是 7 的倍数的数字都应该 Pass。例如:17,78,14 都应该为 Pass,因为 17 和 78 中含有数字 7,14 是 7 的倍数;而 36,88 不需要 Pass,因为 36 和 88 既不是 7 的倍数,也没有包含 7。

Alice 在研究这个游戏,请你帮助 Alice 判断一下 100 以内中的哪些数字需要 Pass。

Input:

第一行输入一个整数 T (1≤T≤100),表示用例组数;

接下来 T 行,每行一个整数 n (1≤n≤100),表示询问的数字。

Output:

输出共 T 行,若对于数字 n 需要 Pass,输出Pass,否则输出该整数。

Sample:

Example Input:

10
1
6
7
17
78
14
36
88
77
100

Example Output:

1
6
Pass
Pass
Pass
Pass
36
88
Pass
100

代码长度限制

16 KB

时间限制

500 ms

内存限制

256 MB

栈限制

8192 KB

 基本原理:

  • while (T--) 语句中,首先会检查 T 是否为真(即非零),然后执行循环体。每次循环结束后,T 会减少 1。
  • 直到 T 的值变为 0(即 T 变为假,T-- 的结果是 0),循环会停止
    while (T--)
    {
    
    }
  • str.find('7') 是 C++ 中 std::string 类的一个成员函数,用于查找字符 '7' 在字符串 str 中首次出现的位置。
  • 返回值
    • 如果找到字符 '7',则 find 返回该字符在字符串中的位置(即索引)。位置是从 0 开始的。
    • 如果找不到字符 '7',则 find 返回一个特殊的常量 std::string::npos,表示没有找到。

 所以如果 str.find('7') 不等于 npos,就说明找到了字符 '7',需要输出Pass

if (str.find("7") != string::npos)
{
	cout << "Pass" << endl;
}

完整代码:

#include <iostream>
using namespace std;

int main() {
    int T;
    cin >> T;  // 读取用例组数

    while (T--) {
        int n;
        cin >> n;  // 读取每个数字

        // 判断是否是7的倍数或包含7
        if (n % 7 == 0 || to_string(n).find('7') != string::npos) {
            cout << "Pass" << endl;
        } else {
            cout << n << endl;
        }
    }

    return 0;
}

### 回答1: 这是一行Java代码,意思是:如果“nodemap”中包含键为“ZERO_SEVEN”或键为“ZERO_EIGHT”的元素,就执行下面的代码块。其中,”SoftWareInfoConstant.ZERO_SEVEN”和”SoftWareInfoConstant.ZERO_EIGHT”应该是程序中定义的常量或变量。 ### 回答2: 这段代码的意思是,判断nodemap(一个映射表)中是否包含键值为"ZERO_SEVEN"或"ZERO_EIGHT"的元素。如果包含其中一个键值,就返回true,否则返回false。 首先,我们需要了解nodemap是什么。nodemap是一个映射表,也被称为字典或关联数组。它是一种数据结构,用于存储键值对,其中每个键对应一个唯一的值。 nodemap.containsKey(SoftWareInfoConstant.ZERO_SEVEN)表示判断nodemap中是否包含键值为"ZERO_SEVEN"的元素。如果包含该键值,返回true,否则返回false。 nodemap.containsKey(SoftWareInfoConstant.ZERO_EIGHT)表示判断nodemap中是否包含键值为"ZERO_EIGHT"的元素。如果包含该键值,返回true,否则返回false。 整个if语句则是对这两个判断的结果进行逻辑或运算。如果其中一个判断返回true,整个条件表达式就会返回true。 总之,这段代码的作用是判断nodemap中是否包含键值为"ZERO_SEVEN"或"ZERO_EIGHT"的元素。 ### 回答3: 这段代码是在判断 `nodemap` 这个 Map 集合中是否包含 `ZERO_SEVEN` 或者 `ZERO_EIGHT` 这两个键。其中 `SoftWareInfoConstant.ZERO_SEVEN` 和 `SoftWareInfoConstant.ZERO_EIGHT` 是两个常量的键值。 如果 `nodemap` 中包含 `ZERO_SEVEN` 或者 `ZERO_EIGHT`,那么条件表达式返回 true,否则返回 false。 代码中使用 `containsKey` 方法来判断 Map 是否包含指定的键。如果包含,返回 true;如果不包含,返回 false。 这段代码是在检查 `nodemap` 中是否存在 `ZERO_SEVEN` 或 `ZERO_EIGHT` 键,可能是为了在接下来的代码逻辑中做出不同的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值