[GESP202403 二级] 乘法问题

[GESP202403 二级] 乘法问题

GESP二级真题,多层循环、分支语句练习,难度★✮☆☆☆。

luogu-B3954 [GESP202403 二级] 乘法问题

题目要求

题目描述

小 A 最初刚刚学习了乘法,为了帮助他练习,我们给他若干个正整数,并要求他将这些数乘起来。

对于大部分题目,小 A 可以精确地算出答案,不过,若这些数的乘积超过 10610^6,小 A 就不会做了。

请你写一个程序,告诉我们小 A 会如何作答。

输入格式

第一行一个整数 nn,表示正整数的个数。

接下来 nn,每行一个整数 aa。小 A 需要将所有的 aa 乘起来。

输出格式

输出一行,如果乘积超过 10610^6,则输出 >1000000;否则输出所有数的乘积。

样例输入 #1

2
3
5

样例输出 #1

15
样例输入 #2
3
100
100
100

样例输出 #2

1000000

样例输入 #3

4
100
100
100
2

样例输出 #3

>1000000

数据规模与约定

对全部的测试数据,保证 1n501 \leq n \leq 501a1001 \leq a \leq 100


题目分析

解题思路

  1. 首先,读取输入的整数 n
  2. 初始化一个整数变量 a,用于存储每天小杨做的题目数量。
  3. 使用一个循环来模拟小杨每天的做题过程,从第一天到第 n 天。
  4. 在每次循环中,首先读取输入的整数 a,然后将 aans 相乘。
  5. 如果 ans 大于 1000000,则直接输出 >1000000,并结束程序。
  6. 否则,继续下一天的做题过程,直到第 n 天。
  7. 循环结束后,输出 ans,即小杨总共做的题目数。

{% include custom/custom-post-content-inner.html %}


示例代码

#include <iostream>
using namespace std;
int main() {
    int a; // 定义整数变量a
    cin >> a; // 从输入流读取整数到a
    int b; // 定义整数变量b
    int ans = 1; // 初始化变量ans为1,用于存储结果
    for (int i = 1; i <= a; i++) { // 从1到a进行循环
        cin >> b; // 从输入流读取整数到b
        ans *= b; // 将ans与b相乘
        if (ans <= 1000000) { // 如果ans小于等于1000000
            continue; // 继续下一次循环
        } else { // 否则
            cout << ">1000000"; // 输出">1000000"
            return 0; // 程序结束
        }
    }
    cout << ans; // 输出ans的值
    return 0; // 程序结束
}

{% include custom/custom-post-content-footer.md %}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

luogu-”系列题目可在 洛谷题库 在线评测。

bcqm-”系列题目可在 编程启蒙题库 在线评测。

GESP/CSP 认证学习微信公众号
GESP/CSP 认证学习微信公众号
Last updated on