【洛谷算法题】P2433-小学数学 N 合一【入门2分支结构】

简介: 【洛谷算法题】P2433-小学数学 N 合一【入门2分支结构】

【洛谷算法题】P2433-小学数学 N 合一【入门2分支结构】

题目链接:【深基1-2】小学数学 N 合一 - 洛谷

🌏题目描述

🌙问题 1

请输出 I love Luogu!

🌙问题 2

这里有 10 1010 个苹果,小 A 拿走了 2 22 个,Uim 拿走了 4 44 个,八尾勇拿走剩下的所有的苹果。我们想知道:

  1. 小A 和 Uim 两个人一共拿走多少苹果?
  2. 八尾勇能拿走多少苹果?

现在需要编写一个程序,输出两个数字作为答案,中间使用空格分开。

🌙问题 3

现在有 14 1414 个苹果。要均分给 4 44 名同学,分不掉的苹果放回冰箱。请问:

  1. 每位同学能分得几个苹果?
  2. 一共分出去多少苹果?
  3. 把几个苹果放回冰箱?

现在需要编写一个程序,输出三个数字作为答案,每个数字一行。

🌙问题 4

现在有 500 500500 毫升的肥宅快乐水,要均分给 3 33 名同学,每位同学可以分到多少毫升?请输出一个数字作为输出。保留 6 66 位有效数字,且不使用科学计数法。

🌙问题 5

甲列火车长 260 260260 米,每秒行 12 1212 米;乙列火车长 220 220220 米,每秒行 20 2020 米,两车相向而行,从两车车头相遇时开始计时,多长时间后两车车尾相离?已知答案是整数。

🌙问题 6

一个长方形长宽分别是 6  cm 6 \text{ cm}6 cm9  cm 9 \text{ cm}9 cm,求它的对角线长度(cm \text{cm}cm)。直接使用 cout 输出。

🌙问题 7

Uim 银行账户里面有 100 100100 元。经过了下面的操作:

  1. 往里面存了 10 1010 元;
  2. 购物花掉了 20 2020 元;
  3. 把里面的钱全部取出。

请在每次操作后输出账户余额,并使用换行符隔开。

🌙问题 8

当半径为 r = 5 r=5r=5,请输出圆的周长、面积和球体积。取 π = 3.141593 \pi=3.141593π=3.141593。请直接使用 cout 输出答案,每行一个数字。

🌙问题 9

一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;第二天他也刚好吃了剩余桃子的一半,贪嘴多吃了一个;第三天他又刚好吃了剩下的桃子的一半,并贪嘴多吃了一个。第四天起来一看,发现桃子只剩下一个了。请问小猴买了几个桃子?

🌙问题 10

洛谷的评测任务是单位时间内均匀增加的。8 88 台评测机 30 3030 分钟可以刚好把评测队列中的程序评测完毕,10 1010 台评测机 6 66 分钟可以刚好把评测队列中的程序评测完毕,请问几台评测机可以在 10 1010 分钟时刚好把评测队列中的程序评测完毕?

🌙问题 11

小 A 跑步速度 5  m/s 5 \text{ m/s}5 m/s,八尾勇跑步速度 8  m/s 8 \text{ m/s}8 m/s,八尾勇在小 A 后面 100  m 100 \text{ m}100 m,他们同时起跑,请问需要多长时间八尾勇可以追上小 A?输出一个数字表示答案,使用 cout 直接输出。

🌙问题 12

大家都知道有 26 2626 个英文字母,其中 A 是第一个字母。现在请编程求出:

  1. M 是字母表中的第几个字母?
  2. 18 1818 个字母是什么?

输出一个数字和一个字母,使用换行隔开。

🌙问题 13

小 A 有两块球形橡皮泥,一个半径是 4 44,一个半径是 10 1010。他想把这两块橡皮泥揉在一起,然后塑造成一个正方体,请问这个正方体的棱长是多少?如果结果不是整数,则舍去小数点之后的数字。取 π = 3.141593 \pi = 3.141593π=3.141593

🌙问题 14

根据咕咕网校的预测,当课程定价为 110 110110 元时,会有 10 1010 人报名。如果课程价格每降低 1 11 元,就会多 1 11 名报名者(反之亦然)。如果希望总共能收到 3500 35003500 元学费的话,那么应该定价多少呢?已知本题有两个答案符合要求,则取较小的那一个。如果这个答案不是整数,则需四舍五入精确到整数。

🌏输入格式

输入一个正整数,表示第几个问题。

🌏输出格式

根据所输入的问题编号,输出对应问题的答案。

🌏样例 #1

🌙样例输入 #1

2

🌙样例输出 #1

6 4

🌏提示

请解决以下小学数学题。你可以提交答案,也可以写一个程序。

对于本题来说,如果你不知道怎么输入,也可以这么抄:

#include<iostream>
// 填上你觉得需要的其他头文件
using namespace std;
int main() {
    int T;
    cin >> T;
    if (T == 1) {
        // 粘贴问题 1 的主函数代码,除了 return 0
        cout << "I love Luogu!";
    } else if (T == 2) {
        // 粘贴问题 2 的主函数代码,除了 return 0
        cout << 2 + 4 << " " << 10 - 2 - 4;
    } else if (T == 3) {
        // 请自行完成问题 3 的代码
    } else if (T == 4) {
        // 请自行完成问题 4 的代码
    } else if (T == 5) {
        // 请自行完成问题 5 的代码
    } else if (T == 6) {
        // 请自行完成问题 6 的代码
    } else if (T == 7) {
        // 请自行完成问题 7 的代码
    } else if (T == 8) {
        // 请自行完成问题 8 的代码
    } else if (T == 9) {
        // 请自行完成问题 9 的代码
    } else if (T == 10) {
        // 请自行完成问题 10 的代码
    } else if (T == 11) {
        // 请自行完成问题 11 的代码
    } else if (T == 12) {
        // 请自行完成问题 12 的代码
    } else if (T == 13) {
        // 请自行完成问题 13 的代码
    } else if (T == 14) {
        // 请自行完成问题 14 的代码
    }
    return 0;
}

🌏题解

import java.util.Scanner;
import java.math.BigDecimal;
import java.math.MathContext;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int judge = in.nextInt();
        double PI = 3.141593;
        switch (judge) {
            case 1 : System.out.println("I love Luogu!");
            break;
            case 2 : System.out.println(6 + " " + 4);
            break;
            case 3 : System.out.println(14 / 4);
                     System.out.println(4 * (14 / 4));
                     System.out.println(14 % 4);
            break;
            case 4 : 
                    System.out.printf("%.3f",500 / 3.0);
            break;
            case 5 : System.out.println(480 / 32);
            break;
            case 6 : 
                    double number = Math.sqrt(6*6 + 9*9);
                    BigDecimal b = new BigDecimal(String.valueOf(number)); 
                    BigDecimal divisor = BigDecimal.ONE;
                    MathContext mc = new MathContext(6);
                    System.out.println(b.divide(divisor, mc));
            break;
            case 7 : System.out.println(110);
                     System.out.println(90);
                     System.out.println(0);
            break;
            case 8 :
                     System.out.printf("%.4f\n",2 * PI * 5);
                     System.out.printf("%.4f\n",PI * 25);
                     System.out.printf("%.3f",4.0 / 3 * PI * 5 * 5 * 5);
                     break;
            case 9 :
                     System.out.println(fun(3));
            break;
            case 10 :
                     System.out.println(9);
            break;
            case 11 :
                     System.out.printf("%.4f",100 / 3.0);
            break;
            case 12 :
                     System.out.println((int)'M' - 64);
                     System.out.println((char)('A' + 17));
            break;
            case 13 :
                      double A = 4.0 / 3 * PI * 4 * 4 * 4;
                      double B = 4.0 / 3 * PI * 10 * 10 * 10;
                      System.out.printf("%.0f",Math.pow((A + B), 1.0 / 3.0));
            break;
            case 14 :
                      System.out.println(50);
            break;
        }
        in.close();
    }
    public static int fun(int n) {
        int sum = 1;
        for (int i = 1; i <= n; i++) {
            sum = (sum + 1) * 2;
        }
        return sum;
    }
}

🌏总结

从本篇文章开始,我们将进入洛谷官方题单【入门2】分支结构的练习,主要针对我们对于编程语言中分支结构的熟悉和使用。

今天这个题总共有 14 个小问题,我们要根据输入的题号输出对应的结果,显然,这需要采用一个多分支结构来完成。这里,我们使用了 switch 语句来完成多分支语句。接下来我将给大家一一讲解每个题怎么做。

🌙problem 1

一个简单的输出语句。

System.out.println("I love Luogu!");

🌙problem 2

一个简单的数学问题。如果这样的数学题你不会做的话,那么我表示:你很棒,可以重新回小学看望一下你的小学数学老师,你看他打不打你就完了。

System.out.println(6 + " " + 4);

🌙problem 3

一个简单的数学问题。

System.out.println(14 / 4);
System.out.println(4 * (14 / 4));
System.out.println(14 % 4);

🌙problem 4

System.out.printf("%.3f",500 / 3.0);

这个题有一个易错点,保留6位有效数字,不要误认为保留六位有效数字就是保留六位小数。有效数字是指从第一个不为0的数字开始后的数字,而且不算上末尾的 0。

例如:

1.3454位有效数字

0.041位有效数字

0.004533位有效数字

0.7830003位有效数字

Java 保留有效数字的方法

public class Test {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        double number = 0.06789;
        BigDecimal b = new BigDecimal(String.valueOf(number)); 
        BigDecimal divisor = BigDecimal.ONE;
        // 保留几位有效数字就把 2 改成几
        MathContext mc = new MathContext(2);
        System.out.println(b.divide(divisor, mc));
        in.close();
    }
}

🌙problem 5

一个数学行程的问题。此题是一个相遇问题,解题关键点:时间相同,且相遇时和离开时的总距离都是相同的。

直接上公式:

相遇问题:路程和 = 时间 * 速度和

System.out.println(480 / 32);

🌙problem 6

这个就是利用三角形勾股定理来做。利用 Java 的平方根函数sqrt()。但是这个题需要注意一个细节,就是题目中要求使用C++做的话,直接使用cout输出结果,而在C++中cout默认输出浮点数保留 6 位有效数字,所以当我们转换为 Java 语言来做这个题目的时候,我们也要将结果保留 6 位有效数字。

double number = Math.sqrt(6*6 + 9*9);
BigDecimal b = new BigDecimal(String.valueOf(number)); 
BigDecimal divisor = BigDecimal.ONE;
MathContext mc = new MathContext(6);
System.out.println(b.divide(divisor, mc));

🌙problem 7

简单的数学题。

System.out.println(110);
System.out.println(90);
System.out.println(0);

🌙problem 8

直接用公式:

圆的周长:C=2πr
圆的面积:S=πr2
球的体积:V=(4/3)πr3

这个题也同样要求使用cout输出结果,也即要保留 6 位有效数字,我们使用Java做时,也不一定都要按保留有效数字的那个方法来做,有时候太麻烦了,我们可以先看结果有多少位小数,再使用格式控制符保留到 6 位小数就达到了保留 6 位有效数字的目的,如下:

System.out.printf("%.4f\n",2 * PI * 5);
System.out.printf("%.4f\n",PI * 25);
System.out.printf("%.3f",4.0 / 3 * PI * 5 * 5 * 5);

🌙problem 9

从最后一天起往前递推就可以得到第一天的桃子总数,前一天的桃子数等于今天的桃子数加 1 的两倍,就这样循环 n 次,就可以推出第一天的桃子数量。

public static int fun(int n) {
        int sum = 1;
        for (int i = 1; i <= n; i++) {
            sum = (sum + 1) * 2;
        }
        return sum;
    }
System.out.println(fun(3));

🌙problem 10

这个题有个简单的做法,就是所求的数量是在 8 到 10 之间的,而又只能是整数,所以只能是 9;这样就做出来了。

但是还是要看看正确的做法。这是一个牛吃草问题,那么什么是牛吃草问题呢。

例如这样的问题: 牧场上有一片青草,每天都生长得一样快。这片青草供给 10 头牛吃,可以吃 22 天,或者供给 16 头牛吃,可以吃 10 天,期间一直有草生长。如果供给 25 头牛吃,可以吃多少天?

这个题就和本题非常的相似,草每天都在增长,此题中评测速率也在增快

可以列出一个方程组:

x+30y=8×30;
x+6y=10×6;

其中,x是初始的评测时间,y是每分钟的增长量

解得: x = 5;y = 7.5;

则答案等于:(15+7.5×10)÷10= 9 台评测机器。

🌙problem 11

一个简单的追及问题。八尾勇追上小A的总路程 = 小A的路程加上100米

得方程:5t + 100 = 8t => t = 100 / 3

System.out.printf("%.4f",100 / 3.0);

🌙problem 12

利用 ASCII 码来解答,A 的 ASCII 码为 65,根据这个往后推就可以得出结果。

System.out.println((int)'M' - 64);
System.out.println((char)('A' + 17));

🌙problem 13

先算出两个橡皮泥的总体积,再开立方根求出正方体的棱长。

double A = 4.0 / 3 * PI * 4 * 4 * 4;
double B = 4.0 / 3 * PI * 10 * 10 * 10;
System.out.printf("%.0f",Math.pow((A + B), 1.0 / 3.0));

🌙problem 14

用一个一元二次方程组就搞定了

设降价 x 元,售价就为110 + x 元

得方程:

(110 + x1)(10 − x2) = 3500;

解出来得:x1 = 70;x2 = 50;

或者 x1 = 50,x2 = 70;

题目要求要小的那个。

所以输出 50 就OK了。

System.out.println(50);

作者:花无缺(huawuque404.com)


相关文章
|
5天前
|
机器学习/深度学习 算法
扩散模型=进化算法!生物学大佬用数学揭示本质
在机器学习与生物学交叉领域,Tufts和Harvard大学研究人员揭示了扩散模型与进化算法的深刻联系。研究表明,扩散模型本质上是一种进化算法,通过逐步去噪生成数据点,类似于进化中的变异和选择机制。这一发现不仅在理论上具有重要意义,还提出了扩散进化方法,能够高效识别多解、处理高维复杂参数空间,并显著减少计算步骤,为图像生成、视频合成及神经网络优化等应用带来广泛潜力。论文地址:https://arxiv.org/pdf/2410.02543。
31 21
|
5月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:理解神经网络与反向传播算法
【9月更文挑战第20天】本文将深入浅出地介绍深度学习中的基石—神经网络,以及背后的魔法—反向传播算法。我们将通过直观的例子和简单的数学公式,带你领略这一技术的魅力。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你打开深度学习的大门,让你对神经网络的工作原理有一个清晰的认识。
|
26天前
|
机器学习/深度学习 人工智能 算法
Transformer打破三十年数学猜想!Meta研究者用AI给出反例,算法杀手攻克数学难题
《PatternBoost: Constructions in Mathematics with a Little Help from AI》提出了一种结合传统搜索算法和Transformer神经网络的PatternBoost算法,通过局部搜索和全局优化交替进行,成功应用于组合数学问题。该算法在图论中的Ramsey数研究中找到了更小的反例,推翻了一个30年的猜想,展示了AI在数学研究中的巨大潜力,但也面临可解释性和通用性的挑战。论文地址:https://arxiv.org/abs/2411.00566
74 13
|
1月前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
211 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
3月前
|
存储 缓存 算法
通过优化算法和代码结构来提升易语言程序的执行效率
通过优化算法和代码结构来提升易语言程序的执行效率
|
3月前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
67 3
|
4月前
|
存储 缓存 算法
如何通过优化算法和代码结构来提升易语言程序的执行效率?
如何通过优化算法和代码结构来提升易语言程序的执行效率?
102 5
|
3月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
56 0
|
4月前
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理
|
4月前
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)