【GESP】C++二级真题 luogu-b3954, [GESP202403 二级] 乘法问题
GESP二级真题,多层循环、分支语句练习,难度★✮☆☆☆。
luogu-B3954 [GESP202403 二级] 乘法问题
题目要求
题目描述
小 A 最初刚刚学习了乘法,为了帮助他练习,我们给他若干个正整数,并要求他将这些数乘起来。
对于大部分题目,小 A 可以精确地算出答案,不过,若这些数的乘积超过 $10^6$,小 A 就不会做了。
请你写一个程序,告诉我们小 A 会如何作答。
输入格式
第一行一个整数 $n$,表示正整数的个数。
接下来 $n$,每行一个整数 $a$。小 A 需要将所有的 $a$ 乘起来。
输出格式
输出一行,如果乘积超过 $10^6$,则输出
>1000000
;否则输出所有数的乘积。
样例输入 #1
1
2
3
2
3
5
样例输出 #1
1
15
样例输入 #2
1
2
3
4
3
100
100
100
样例输出 #2
1
1000000
样例输入 #3
1
2
3
4
5
4
100
100
100
2
样例输出 #3
1
>1000000
数据规模与约定
对全部的测试数据,保证 $1 \leq n \leq 50$,$1 \leq a \leq 100$。
题目分析
解题思路
- 首先,读取输入的整数
n
。 - 初始化一个整数变量
a
,用于存储每天小杨做的题目数量。 - 使用一个循环来模拟小杨每天的做题过程,从第一天到第
n
天。 - 在每次循环中,首先读取输入的整数
a
,然后将a
与ans
相乘。 - 如果
ans
大于1000000
,则直接输出>1000000
,并结束程序。 - 否则,继续下一天的做题过程,直到第
n
天。 - 循环结束后,输出
ans
,即小杨总共做的题目数。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#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; // 程序结束
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
GESP各级别考纲要点、知识拓展和练习题目清单详见C++学习项目主页
“luogu-”系列题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限,欢迎加入。
“bcqm-”系列题目可在编程启蒙题库进行在线评测。
本文由作者按照 CC BY 4.0 进行授权