第二讲 习题
例题
AcWing 665. 倍数
读取两个正整数值 A A A 和 B B B。
如果其中一个是另一个的整数倍,则输出 Sao Multiplos
,否则输出 Nao sao Multiplos
。
输入格式
共一行,两个整数 A A A 和 B B B。
输出格式
按题目所述,输出结果。
数据范围
0 < A , B < 100 0<A,B<100 0<A,B<100
输入样例:
6 24
输出样例:
Sao Multiplos
时/空限制:1s / 64MB
来源:语法题
算法标签:判断结构
yxc’s Solution
- 判断是否有, A A A 是 B B B 的倍数或者 B B B 是 A A A 的倍数即可.
如果 x % y = 0 x \% y =0 x%y=0,即存在 z ∈ N + z \in \mathbf{N_+} z∈N+,使得 x = z × y x=z \times y x=z×y,故可以说明 x x x 是 y y y 的倍数.
但要注意需要满足 y ≠ 0 y\not=0 y=0,因为取模是基于除法的运算,除数为 0 0 0 时则算式没有意义.
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
if (a % b == 0 || b % a == 0) cout << "Sao Multiplos" << endl;
else cout << "Nao sao Multiplos" << endl;
return 0;
}
// 运行时间: 20 ms
// 运行空间: 216 KB
AcWing 660. 零食
某商店出售 5 5 5 种零食,零食编号为 1 ∼ 5 1∼5 1∼5。
5 5 5 种零食的价目表如下所示:
零食种类 价格
零食 1 R$ 4.00
零食 2 R$ 4.50
零食 3 R$ 5.00
零食 4 R$ 2.00
零食 5 R$ 1.50
现在给定某种零食的编号和数量,请你计算总价值是多少。
输入格式
输入包含两个整数 x x x 和 y y y,其中 x x x 为零食编号, y y y 为零食数量。
输出格式
输出格式为 Total: R$ X
,其中 X
为总价值,保留两位小数。
数据范围
1 ≤ x ≤ 5 , 1≤x≤5, 1≤x≤5,
1 ≤ y ≤ 100 1≤y≤100 1≤y≤100
输入样例:
3 2
输出样例:
Total: R$ 10.00
时/空限制:1s / 64MB
来源:语法题
算法标签:判断结构
yxc’s Solution
- 先通过编号找到单价,则 总 价 值 = 单 价 × 数 量 总价值=单价 \times 数量 总价值=单价×数量.
#include <cstdio>
int main() {
int x, y;
scanf("%d%d", &x, &y);
double price;
if (x == 1) price = 4;
else if (x == 2) price = 4.5;
else if (x == 3) price = 5;
else if (x == 4) price = 2;
else price = 1.5;
printf("Total: R$ %.2lf\n", price * y);
return 0;
}
// 运行时间: 10 ms
// 运行空间: 216 KB
AcWing 659. 区间
给定一个浮点数,请你判断该数字属于以下哪个区间: [ 0 , 25 ] , ( 25 , 50 ] , ( 50 , 75 ] , ( 75 , 100 ] [0,25],(25,50],(50,75],(75,100] [0,25],(25,50],(50,75],(75,100]。
如果给定的数值小于 0 0 0 或大于 100 100 100,则程序输出 Fora de intervalo
,表示超出范围。
开区间 ( a , b ) (a,b) (a,b):在实数 a a a 和实数 b b b 之间的所有实数,但不包含 a a a 和 b b b。
闭区间 [ a , b ] [a,b] [a,b]:在实数 a a a 和实数 b b b 之间的所有实数,包含 a a a 和 b b b。
输入格式
输入一个浮点数。
输出格式
判断输入数值位于哪个区间,按格式 Intervalo x
输出,其中 x
为区间范围 [ 0 , 25 ] , ( 25 , 50 ] , ( 50 , 75 ] , ( 75 , 100 ] [0,25],(25,50],(50,75],(75,100] [0,25],(25,50],(50,75],(75,100] 中的一个。
如果数值位于所有区间之外,则输出 Fora de intervalo
。
输入样例:
25.01
输出样例:
Intervalo (25,50]
时/空限制:1s / 64MB
来源:语法题
算法标签:判断结构
yxc’s Solution
#include <iostream>
using namespace std;
int main() {
double x;
cin >> x;
if (0 <= x && x <= 25) cout << "Intervalo [0,25]" << endl;
else if (25 < x && x <= 50) cout << "Intervalo (25,50]" << endl;
else if (50 < x && x <= 75) cout << "Intervalo (50,75]" << endl;
else if (75 < x && x <= 100) cout << "Intervalo (75,100]" << endl;
else cout << "Fora de intervalo" << endl;
return 0;
}
// 运行时间: 22 ms
// 运行空间: 216 KB
AcWing 664. 三角形
读取三个浮点数 A A A, B B B 和 C C C 并验证是否可以用它们形成三角形。
如果可能,则计算并输出三角形的周长:
Perimetro = XX.X
如果不可能,则计算并输出以 A A A 和 B B B 为底以 C C C 为高的梯形面积:
Area = XX.X
输入格式
共一行,包含三个浮点数 A , B , C A,B,C A,B,C。
输出格式
按题目描述格式,输出答案,答案保留一位小数。
数据范围
0 < A , B , C < 100.0 0<A,B,C<100.0 0<A,B,C<100.0
输入样例1:
6.0 4.0 2.0
输出样例1:
Area = 10.0
输入样例2:
6.0 4.0 2.1
输出样例2:
Perimetro = 12.1
时/空限制:1s / 64MB
来源:语法题
算法标签:判断结构
yxc’s Solution
- 当任意两边之和都严格大于第三边时,即可组成三角形;
- 梯形的面积为 S 梯 形 = ( 上 底 +