有五个整数,如果两个连续整数之间差都是2的倍数,那么就称这五个整数为“幸运数”。例如五个整数1、3、5、3、5是“幸运数”,因为差分别为:2、2、-2、2,它们都是2的倍数。

输入五个整数,判断这五个整数是否是“幸运数”。

【输入格式】输入五个整数

【输出格式】如果五个整数是“幸运数”,则输出"Lucky",否则输出"None"。

思路:此题需要用到循环(重复执行),用后一个数减去钱一个数,判断差的绝对值是不是2,如果是,继续,否则说明不是幸运数,停止循环,输出None。

一、Scratch解法:

创建列表num

NOC青少儿编程大赛真题解析:验证幸运数

1、重复执行5次,通过询问积木输入5个数,依次存入列表中。

NOC青少儿编程大赛真题解析:验证幸运数

2、定义变量“i”和“差”,“i”初始值为1,重复计算第i+1项与第i项的差,然后i增加1,直到i=5停止。

NOC青少儿编程大赛真题解析:验证幸运数NOC青少儿编程大赛真题解析:验证幸运数

NOC青少儿编程大赛真题解析:验证幸运数

3、在循环中加入判断,看变量“差”的绝对值是否等于2,如果不等于2,说出"None",停止执行,否则继续。

NOC青少儿编程大赛真题解析:验证幸运数

4、如果循环顺利执行完,没有停止,说明是幸运数,就在程序结尾说"Lucky",完整的程序参考如下:

NOC青少儿编程大赛真题解析:验证幸运数

二、Python解法:

# 输入五个整数
numbers = list(map(int, input("请输入五个整数,以空格分隔: ").split()))

# 确保输入的是五个整数
if len(numbers) != 5:
    print("请输入正好五个整数。")
else:
    # 计算差值
    differences = [numbers[i] - numbers[i-1] for i in range(1, 5)]
    # 判断差值是否都是2的倍数
    if all(diff % 2 == 0 for diff in differences):
        print("Lucky")
    else:
        print("None")

三、C++解法:

#include <iostream>
using namespace std;

int main() {
    int numbers[5]; 
    // 输入五个整数
    cout << "请输入五个整数,以空格分隔: ";
    for (int i = 0; i < 5; ++i) {
        cin >> numbers[i];
    }
    // 判断差值是否都是2的倍数
    bool isLucky = true;
    for (int i = 1; i < 5; ++i) {
        int diff = numbers[i] - numbers[i-1];
        //如果差值不是2的倍数,跳出循环 
        if (diff % 2 != 0) {
            isLucky = false;
            break;
        }
    }
    // 输出结果
    if (isLucky) {
        cout << "Lucky" << endl;
    } else {
        cout << "None" << endl;
    }
    return 0;
}

本站内容未经许可,禁止任何网站及个人进行转载。