当前位置: 首页 > news >正文

【day9】【洛谷算法题】-P2433小学数学N合一-刷题反思集[入门2分支结构]

在这里插入图片描述

🌸大家好,我是花无缺,一枚热爱生活的新时代青年,感谢你的阅读🥰~
👨‍💻个人主页:@花无缺
欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
本文由 花无缺 原创

收录于专栏 【算法题集】


文章目录

  • 🌞【深基1-2】小学数学 N 合一
    • 🌸题目描述
      • 🍭问题1
      • 🍭问题2
      • 🍭问题3
      • 🍭问题4
      • 🍭问题5
      • 🍭问题6
      • 🍭问题7
      • 🍭问题8
      • 🍭问题9
      • 🍭问题10
      • 🍭问题11
      • 🍭问题12
      • 🍭问题13
      • 🍭问题14
    • 🌸输入格式
    • 🌸输出格式
    • 🌸样例
      • 🍭样例输入
      • 🍭样例输出
    • 🌸提示
    • 🌸我的题解
      • 🍭结果
    • 🌸优解
    • 🌸反思总结
      • #1
      • #2
      • #3
      • #4
      • #5
      • #6
      • #7
      • #8
      • #9
      • #10
      • #11
      • #12
      • #13
      • #14


🌞【深基1-2】小学数学 N 合一

🌸题目描述

🍭问题1

请输出I love Luogu!

🍭问题2

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

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

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

🍭问题3

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

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

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

🍭问题4

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

🍭问题5

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

🍭问题6

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

🍭问题7

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

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

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

🍭问题8

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

🍭问题9

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

🍭问题10

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

🍭问题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 26 26 个英文字母,其中 A 是第一个字母。现在请编程求出:

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

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

🍭问题13

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

🍭问题14

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

🌸输入格式

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

🌸输出格式

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

🌸样例

🍭样例输入

2

🍭样例输出

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;
}

🌸我的题解

#include <iostream>
using namespace std;
#include <math.h>

int main()
{
    int t;
    float PI = 3.141593;
    scanf("%d", &t);
    switch (t)
    {
    case 1:
        printf("I love Luogu!");
        break;
    case 2:
        printf("%d %d", 2 + 4, 10 - 2 - 4);
        break;
    case 3:
        printf("%d\n%d\n%d", 14 / 4, 14 / 4 * 4, 14 % 4);
        break;
    case 4:
        printf("%.3f", 500 / 3.0);
        break;
    case 5:
        printf("%d", 480 / 32);
        break;
    case 6:
        cout << sqrt(6 * 6 + 9 * 9);
        break;
    case 7:
        printf("%d\n%d\n%d\n", 100 + 10, 100 + 10 - 20, 0);
        break;
    case 8:
    {
        float radius = 5.0;
        cout << 2 * radius * PI << endl
             << PI * radius * radius << endl
             << (4.0 / 3) * PI * radius * radius * radius;
    }
    break;
    case 9:
    {
        int count = 3, sum = 0;
        for (int i = 0; i < count; i++)
        {
        }
    }
    break;
    case 10:
        printf("%d", 9);
        break;
    case 11:
        cout << 100 / 3.0;
        break;
    case 12:
        printf("%d\n%c", 'M' - 64, 'A' + 17);
        break;
    case 13:
    {
        float radius1 = 4;
        float radius2 = 10;
        double num = (4.0 / 3) * PI * radius1 * radius1 * radius1 + (4.0 / 3) * PI * radius2 * radius2 * radius2;
        printf("%.0lf\n", cbrt(num));
    }
    break;
    case 14:
    {
    }
    break;

    default:
        printf("您的输入有误,请输入1-14(包含1和14)之间的整数题号!");
        break;
    }

    return 0;
}

🍭结果

Unaccepted
这个题属实有点小难,第9和第14没有写出来

🌸优解

#include <iostream>
using namespace std;
#include <math.h>

int main()
{
    int t;
    float PI = 3.141593;
    scanf("%d", &t);
    switch (t)
    {
    case 1:
        printf("I love Luogu!");
        break;
    case 2:
        printf("%d %d", 2 + 4, 10 - 2 - 4);
        break;
    case 3:
        printf("%d\n%d\n%d", 14 / 4, 14 / 4 * 4, 14 % 4);
        break;
    case 4:
        printf("%.3f", 500 / 3.0);
        break;
    case 5:
        printf("%d", 480 / 32);
        break;
    case 6:
        cout << sqrt(6 * 6 + 9 * 9);
        break;
    case 7:
        printf("%d\n%d\n%d\n", 100 + 10, 100 + 10 - 20, 0);
        break;
    case 8:
    {
        float radius = 5.0;
        cout << 2 * radius * PI << endl
             << PI * radius * radius << endl
             << (4.0 / 3) * PI * radius * radius * radius;
    }
    break;
    case 9:
        cout << (((((1 + 1) * 2) + 1) * 2) + 1) * 2;
        break;
    case 10:
        printf("%d", 9);
        break;
    case 11:
        cout << 100 / 3.0;
        break;
    case 12:
        printf("%d\n%c", 'M' - 64, 'A' + 17);
        break;
    case 13:
    {
        float radius1 = 4;
        float radius2 = 10;
        double num = (4.0 / 3) * PI * radius1 * radius1 * radius1 + (4.0 / 3) * PI * radius2 * radius2 * radius2;
        printf("%.0lf\n", cbrt(num));
    }
    break;
    case 14:
        cout << 50;
        break;

    default:
        printf("您的输入有误,请输入1-14(包含1和14)之间的整数题号!");
        break;
    }

    return 0;
}

🌸反思总结

刚看到这个题的时候人都傻了,一上来就搞这大动作,题这么多。

从这个题开始便是【入门2】[分支结构]的题了,今天这个题是题单里的第一个题。总共有14个问题,根据输入的题号,输出对应题目的答案,这里可以使用题目提供的if else多个选择结构来做,但是我使用了我认为更为简单的switch多分支选择结构来做。
每个题的详解:

#1

一个简单的输出语句:

//C语言风格
printf("I love Luogu!");
//C++风格
cout <<"I love Luogu!";

#2

一个简单的数学问题

printf("%d %d", 2 + 4, 10 - 2 - 4);

#3

简单的数学问题:

printf("%d\n%d\n%d", 14 / 4, 14 / 4 * 4, 14 % 4);

#4

简单的数学问题:

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

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

#5

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

相遇问题:路程和 = 时间 * 速度和
cout<<(220+260)/(20+12);

#6

这个就是利用三角形勾股定理来做。利用C语言函数库中的平方根函数sqrt()

cout<<sqrt(6*6+9*9);

#7

简单的数学题。

printf("%d\n%d\n%d\n", 100 + 10, 100 + 10 - 20, 0);

#8

直接用公式

圆的周长:C=2πr
圆的面积:S=πr2
球的体积:V=(4/3)πr3
{
        float radius = 5.0;
        cout << 2 * radius * PI << endl
        << PI * radius * radius << endl
        << (4.0 / 3) * PI * radius * radius * radius;
}

在做这个题的时候,发现了一个有意思的报错,就是我刚开始没有把这个分支语句下的代码加上花括号,然后就报错了,报错内容是: "jump to case label [-fpermissive]"
如图:
在这里插入图片描述
查阅资料后发现, 因为switch中没有单独的区域块来限定变量的声明周期,所以变量的作用域是初始化点到switch的结尾处 。

所以C语言里,如果要在swicth语句的case语句下定义变量,则要定义在一个花括号里,将变量的作用范围限定在当前的case语句中,不然会报错,或者将变量定义在switch结构之外。

相关链接

#9

这个题有解题的思路,但当时不能用代码描述出来。
采用倒推的方法,从最后一天开始往前推算。

cout << (((((1 + 1) * 2) + 1) * 2) + 1) * 2;

#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 台评测机器。

#11

一个简单的追及问题。八尾勇追上小A的总路程 = 小A的路程加上100米
得方程:5t + 100 = 8t

cout << 100 / 3.0;

#12

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

printf("%d\n%c", 'M' - 64, 'A' + 17);

ASCII码的相关介绍可以看这篇文章:链接

#13

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

float radius1 = 4;
float radius2 = 10;
double num = (4.0 / 3) * PI * radius1 * radius1 * radius1 + (4.0 / 3) * PI * radius2 * radius2 * radius2;
printf("%.0lf\n", cbrt(num));

其中,cbrt()是C语言中的开立方根函数

#14

这个题当时想复杂了,没有思路。
用一个一元二次方程组就搞定了
设降价x元,售价就为110 + x元
得方程:
(110+x)(10−x)=3500;
解出来得:x1 = 70;x2 = 50;
题目要求要小的那个。
所以输出50就OK了。


在这里插入图片描述今天完成了[入门2分支结构]的第一题,继续加油吧


🌸欢迎关注我的博客:来和我一起成长吧! 现在关注我,以后就是老粉了(手动狗头)
🍻一起进步-刷题专栏:【算法题集】
🥇往期精彩好文:
📢【day8】【洛谷算法题】-P3954成绩-刷题反思集[入门1顺序结构][附一周思考总结]
📢HTML基础知识详解
你们的点赞👍 收藏⭐ 留言📝 关注✅
是我持续创作,输出优质内容的最大动力!
谢谢!

在这里插入图片描述

相关文章:

  • halcon脚本-深度学习【目标检测】
  • 线上服务器内存飙升怎么排查?
  • xss-lab通关之路
  • FPGA手写一个动态方块视频,用来代替摄像头输入,私信我送代码
  • 海思3559万能平台搭建:DDR移植的一些问题
  • Baklib知识分享|制作网站FAQ需要注意哪些内容?
  • 第十四届蓝桥杯备赛模板题——蓝桥部队 (带权并查集)
  • [推荐系统] 1. 深度学习与推荐系统
  • 设计模式(合)
  • 【k8s】五、Pod生命周期(一)
  • C++彻底搞定面试--多态篇,博主呕心沥血之作,万字解析,弄透多态
  • 在小红书要怎样推广,才能使效果收益最大化?
  • C语言文件操作【续】【进阶】
  • 【重温Python】一、Python中的内置数据结构
  • 向开发者开放免费注册!“远眺捷码”提供一站式软件快速开发平台
  • 0基础学习移动端适配
  • bootstrap创建登录注册页面
  • canvas 高仿 Apple Watch 表盘
  • canvas 绘制双线技巧
  • co.js - 让异步代码同步化
  • Joomla 2.x, 3.x useful code cheatsheet
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • linux学习笔记
  • Meteor的表单提交:Form
  • Python打包系统简单入门
  • select2 取值 遍历 设置默认值
  • Spark学习笔记之相关记录
  • SpriteKit 技巧之添加背景图片
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • V4L2视频输入框架概述
  • Web Storage相关
  • zookeeper系列(七)实战分布式命名服务
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 项目管理碎碎念系列之一:干系人管理
  • 延迟脚本的方式
  • Linux权限管理(week1_day5)--技术流ken
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • !$boo在php中什么意思,php前戏
  • ![CDATA[ ]] 是什么东东
  • #NOIP 2014# day.1 T2 联合权值
  • #pragma once与条件编译
  • #pragma pack(1)
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (转)大道至简,职场上做人做事做管理
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .gitignore文件设置了忽略但不生效
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET 回调、接口回调、 委托
  • .net 简单实现MD5
  • .net反编译的九款神器