题解 P2433 【【深基1-2】小学数学 N 合一】

· · 题解

这是本蒟蒻的第 001 篇题解。

Posted on Sun Mar 15, at 21:04:00

upd on Mon Mar 16, at 07:02:41 (更改了少数部分。)

问题 1

输出 I love Luogu!。直接输出即可。

printf("I love Luogu!");

问题 2

  1. 由于小 A 和 Uim 分别拿走了 24 个,则他们一共拿走了 2 + 4 = 6 个。
  2. 由于在 1 中,我们算出来小 A 和 Uim 共拿走了 6 个,则八尾勇拿走了 10 - 6 = 4 个。
printf("%d %d", 2 + 4, 10 - 2 - 4);

问题 3

这个问题考察我们对 C++ 中 int 的理解。当两个整形变量做除法时,若无法整除,则向下取整。如 14 / 4 的结果为 3

所以可以尽情地使用整形变量的除法了。

int a = 14, b = 4;
printf("%d\n%d\n%d", a / b, (a / b) * b, a - (a / b) * b);

问题 4

注:`%.3lf` 表示保留三位小数的`double`浮点数。 ```c++ printf("%.3lf", 166.667); ``` ### 问题 5 相遇问题。 仔细观察(画图)可得知,是两列火车的车尾在相遇。所以,$S = 260 + 220 = 480$,$v = 12 + 20 = 32$。根据公式得到 $t = \dfrac{S}{v} = 15$。 ```c++ printf("15"); ``` ### 问题 6 **注意保留 $6$ 位有效数字!** 坑了我好久。 根据勾股定理 $a^2 + b^2 = c^2$,代入即可。 手算得到整数部分是 $10$(两位数),所以需要保留四位小数。 ```c++ printf("10.8167"); ``` ### 问题 7 简单的模拟。 1. $100 + 10 = 110
  1. 110 - 20 = 90
  2. 0 元。
printf("110\n90\n0");

问题 8

注意保留 6 位有效数字!

先明确公式:

  1. 圆的周长:C = \pi d = 2 \pi r
  2. 圆的面积:S = \pi r^2
  3. 球的体积:V = \frac{4}{3}\pi r^3

就可以通过套公式来得到结果啦!

printf("31.4159\n78.5398\n523.599");

问题 9

数学题;倒着推。

由于最后剩下一个,猴子贪吃了一个,除了这两个以外桃子的数量是总数量的一半,所以原苹果数为:(1 + 1) \times 2 = 4 个。

以此类推,得到总苹果数是 22 个。

天数 苹果个数
1 1
2 4
3 10
4 22
printf("22");

问题 10

答案是 9。并不可能是别的。如果 > 10,则评测时间将会 < 6 \operatorname{min};如果 < 8,则评测时间将会 > 30 \operatorname{min}

所以直接输出。

printf("9");

问题 11

注意保留 6 位有效数字!

追及问题。

有公式 t = \dfrac{S}{v_1 - v_2},代入即可。

printf("33.3333");

问题 12

通过数数,得:

  1. 答案为 13
  2. 答案为 R
printf("13\nR");

问题 13

问题 10 说了球的体积公式为 V = \frac{4}{3}\pi r^3。所以先求出两个球的体积分别约为 268.0826034188.790667,相加得 4456.873270,立方根得 16.456725\cdots,向下取整得 16

printf("16");

问题 14

定价 报名人数
\cdots \cdots
108 12
109 11
110 10
111 9
112 8
\cdots \cdots

得到,当定价为 x 元时,报名人数为 120 - x 人。这时,总共能收到 x \times (120 - x) 元。我们使它等于 3500 即可。

列方程:x \times (120 - x) = 3500,展开得 - x^2 + 120x - 3500 = 0,利用十字相乘得

\begin{cases} x_1 = 50 \\ x_2 = 70 \end{cases}

取较小值即 50

printf("50");

讲完了!下面是完整代码。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    int T;
    cin >> T;
    if (T == 1) {
        printf("I love Luogu!");
    } else if (T == 2) {
        printf("%d %d", 6, 4);
    } else if (T == 3) {
        printf("%d\n%d\n%d", 3, 12, 2);
    } else if (T == 4) {
        printf("%.3lf", 500 * 1.0 / 3);
    } else if (T == 5) {
        printf("15");
    } else if (T == 6) {
        printf("10.8167");
    } else if (T == 7) {
        printf("110\n90\n0");
    } else if (T == 8) {
        printf("31.4159\n78.5398\n523.599");
    } else if (T == 9) {
        printf("22");
    } else if (T == 10) {
        printf("9");
    } else if (T == 11) {
        printf("33.3333");
    } else if (T == 12) {
        printf("13\nR");
    } else if (T == 13) {
        printf("16");
    } else if (T == 14) {
        printf("50");
    }
    return 0;
}

如有问题请在博客留言。

The end.