【NOI-题解】1320. 时钟旋转1323. 扩建花圃问题1462. 小明的游泳时间1565. 成绩(score)1345. 玫瑰花圃

本文主要是介绍【NOI-题解】1320. 时钟旋转1323. 扩建花圃问题1462. 小明的游泳时间1565. 成绩(score)1345. 玫瑰花圃,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、前言
  • 二、问题
    • 问题:1320. 时钟旋转
    • 问题:1323. 扩建花圃问题
    • 问题:1462. 小明的游泳时间
    • 问题:1565. 成绩(score)
    • 问题:1345. 玫瑰花圃
  • 三、感谢

一、前言

本章节主要对基本运算中整数运算、小数运算题目进行讲解。包括《1320. 时钟旋转》《1323. 扩建花圃问题》《1462. 小明的游泳时间》《1565. 成绩(score)》《1345. 玫瑰花圃》

二、问题

问题:1320. 时钟旋转

类型:基本运算、整数运算


题目描述:

时钟上面的时针从 m 时走到 n 时旋转了多少度?(m≤n,且 m 和 n 都是1∼12之间的整数)。

在这里插入图片描述

输入:

2 个整数 m 和 n。

输出:

1 个整数代表时针旋转的度数。

样例:

输入:

1 4

输出:

90

在这里插入图片描述


1.分析问题

  1. 已知:2 个整数 m 和 n。
  2. 未知:时针从m时走到n时旋转了多少度?
  3. 关系:圆是360度,钟表被分成12份,因此每份30度 。

2.定义变量

  • m:起始时刻(单位:小时,假设为整点)。
  • n:结束时刻(单位:小时,假设为整点)。
  • result:时针从 m 时到 n 时旋转的角度(单位:度),待计算。
	//二、数据定义 int m,n,result; 

3.输入数据

  • 从标准输入接收用户输入的起始时刻 m 和结束时刻 n 的值。
	//三、数据输入 cin>>m>>n;

4.数据计算

  • 计算时针从 m 时到 n 时旋转的角度,即 (n - m) 小时对应的旋转角度。
  • 每小时时针旋转 30 度,因此总旋转角度为 30 度 * (n - m)。
	//四、数据计算 result=360/12*(n-m);

5.输出结果

  • 将计算得到的时针旋转角度 result 输出到标准输出。
	//五、输出结果 cout<<result;return 0;

完整代码如下:

#include <bits/stdc++.h>
using namespace std;int main() {// 一、分析问题// 已知:2 个整数 m 和 n,分别代表起始和结束时刻(假设为整点)。// 未知:时针从 m 时走到 n 时旋转了多少度?// 关系:圆是360度,钟表被分成12份(对应12小时),因此每小时对应的旋转角度为 360 度 / 12 = 30 度// 二、数据定义// 定义整型变量:// m:起始时刻(单位:小时,假设为整点)// n:结束时刻(单位:小时,假设为整点)// result:时针从 m 时到 n 时旋转的角度(单位:度),待计算int m, n, result;// 三、数据输入// 从标准输入接收用户输入的起始时刻 m 和结束时刻 n 的值cin >> m >> n;// 四、数据计算// 计算时针从 m 时到 n 时旋转的角度,即 (n - m) 小时对应的旋转角度// 每小时时针旋转 30 度,因此总旋转角度为 30 度 * (n - m)result = 360 / 12 * (n - m);// 五、输出结果// 将计算得到的时针旋转角度 result 输出到标准输出cout << result;// 程序执行完毕,返回 0 表示正常结束return 0;
}

问题:1323. 扩建花圃问题

类型:整数运算、整数运算


题目描述:

梅山小学有一块长方形花圃(花圃的长宽都是整数),长 m 米,宽未知。
在修建校园时,花圃的长增加了 n 米,此时发现增加出来的面积有 s 平方米。
请编程计算出原来花圃的面积是多少平方米?(4.2.19)

输入:

3个整数,分别是 m、n、s。

输出:

一个整数,原来花圃的面积数。

样例:

输入:

8 3 18

输出:

48

在这里插入图片描述


1.分析问题

  1. 已知:花圃长 m 米,花圃的长增加了n米,此时发现增加出来的面积有s平方米。
  2. 未知:原来花圃的面积数a。
  3. 关系:根据增加面积,算出花圃宽度w=s/n;然后算出现在的花圃面积数 。

2.定义变量

  • 声明并定义了五个整型变量,分别表示花坛长度(m)、长度增加量(n)、新增面积(s)、原花坛宽度(w)和原花坛面积(a)。
	//二、数据定义 int m,n,s,w,a; 

3.输入数据

  • 通过cin从标准输入读取花坛长度(m)、长度增加量(n)和新增面积(s)的值。
	//三、数据输入 cin>>m>>n>>s;

4.数据计算

  • 根据给定的新增面积(s)和长度增加量(n),计算出原花坛的宽度(w),公式为 w = s / n。
  • 之后,利用原花坛宽度(w)和长度(m)计算原花坛的面积(a),公式为 a = w * m。
	//四、数据计算 w=s/n;a=w*m;

5.输出结果

  • 使用cout将计算得到的原花坛面积(a)输出到标准输出。
	//五、输出结果 cout<<a;return 0;	

完整代码如下:

#include <bits/stdc++.h>
using namespace std;int main() {// 一、分析问题// 已知:花圃长 m 米,花圃的长增加了 n 米,此时发现增加出来的面积有 s 平方米。// 未知:原来花圃的面积数 a// 关系:根据增加面积,算出花圃宽度 w = s / n;然后算出现在的花圃面积数// 二、数据定义// 定义整型变量:// m:花坛原长度(单位:米)// n:花坛长度增加量(单位:米)// s:因长度增加而新增的面积(单位:平方米)// w:花坛原宽度(单位:米),待计算// a:原花坛面积(单位:平方米),待计算int m, n, s, w, a;// 三、数据输入// 从标准输入接收用户输入的花坛原长度 m、长度增加量 n 和新增面积 s 的值cin >> m >> n >> s;// 四、数据计算// 计算原花坛宽度 w,根据题意,新增面积等于原宽度乘以长度增加量,即 s = w * n,// 变换公式得 w = s / nw = s / n;// 计算原花坛面积 a,根据题意,面积等于原长度乘以原宽度,即 a = m * wa = w * m;// 五、输出结果// 将计算得到的原花坛面积 a 输出到标准输出cout << a;// 程序执行完毕,返回 0 表示正常结束return 0;
}

问题:1462. 小明的游泳时间

类型:整数运算


题目描述:

伦敦奥运会要到了,小明在拼命练习游泳准备参加游泳比赛。
这一天,小明给自己的游泳时间做了精确的计时(本题中的计时都按 24 小时制计算),它发现自己从 a 时 b 分一直游泳到当天的 c 时 d 分。
请你帮小明计算一下,它这天一共游了多少时间呢?小明游的好辛苦呀,你可不要算错了哦。

输入:

一行内输入 4 个整数,分别表示a,b,c,d 。

输出:

一行内输出 2 个整数 e 和 f ,用空格间隔,依次表示小明这天一共游了多少小时多少分钟。其中表示分钟的整数 f应该小于 60 。

样例:

输入:

12 50 19 10

输出:

6 20

在这里插入图片描述


1.分析问题

  1. 已知:从 a 时 b 分一直游泳到当天的 c 时 d 分。
  2. 未知:一共游了多少时间呢?
  3. 关系:先将时间转换成分,计算后再换算成时分输出 。

2.定义变量

  • 定义变量:a(开始时)、b(开始分)、c(结束时)、d(结束分)、e(游泳总时数)、f(游泳总分数),均为整型。
	//二、数据定义 int a,b,c,d,e,f; 

3.输入数据

  • 从标准输入(如键盘)接收用户输入的开始时间和结束时间(时分)。
	//三、数据输入cin>>a>>b>>c>>d; 

4.数据计算

	//四、数据计算 int total_minutes = (c * 60 + d) - (a * 60 + b); // 计算游泳总分钟数e = total_minutes / 60;                          // 计算游泳总时数 e(整除)f = total_minutes % 60;                          // 计算游泳总分数 f(余数)

5.输出结果

  • 输出游泳总时数 e 和总分数 f。
	//五、输出结果 cout<<e<<" "<<f;return 0;

完整代码如下:

#include <bits/stdc++.h> // 包含标准输入输出库以及其他常用头文件
using namespace std;    // 使用 std 命名空间,简化代码int main() {           // 主函数开始// 一、分析问题// 已知:从 a 时 b 分一直游泳到当天的 c 时 d 分// 未知:一共游了多少时间呢?// 关系:先将时间转换成分,进行计算,再将结果换算成时分输出// 二、数据定义 int a, b, c, d, e, f; // 定义变量:a(开始时)、b(开始分)、c(结束时)、d(结束分)、e(游泳总时数)、f(游泳总分数),均为整型// 三、数据输入cin >> a >> b >> c >> d; // 从标准输入(如键盘)接收用户输入的开始时间和结束时间(时分)// 四、数据计算 int total_minutes = (c * 60 + d) - (a * 60 + b); // 计算游泳总分钟数e = total_minutes / 60;                          // 计算游泳总时数 e(整除)f = total_minutes % 60;                          // 计算游泳总分数 f(余数)// 五、输出结果 cout << e << " " << f; // 输出游泳总时数 e 和总分数 freturn 0;              // 主函数结束,返回值为 0 表示程序执行成功
}

问题:1565. 成绩(score)

类型:基本运算、小数运算


题目描述:

牛牛最近学习了 C++ 入门课程,这门课程的总成绩计算方法是:
总成绩=作业成绩 ×20% + 小测成绩 ×30% + 期末考试成绩 ×50%。
牛牛想知道,这门课程自己最终能得到多少分。

输入:

三个非负整数A、B、C ,分别表示牛牛的作业成绩、小测成绩和期末考试成绩。
相邻两个数之间用一个空格隔开,三项成绩满分都是 100 分。

输出:

一个整数,即牛牛这门课程的总成绩,满分也是 100 分。

样例:

输入:

100 100 80 

输出:

90

说明:

【输入输出样例 1 说明】
牛牛的作业成绩是 100 分,小测成绩是 100 分,期末考试成绩是 80 分,总成绩是 100×20% + 100×30% +80×50% =20+30+40=90。
【输入输出样例2说明】
牛牛的作业成绩是 60 分,小测成绩是 90 分,期末考试成绩是 80 分,总成绩是 60×20% +90×30% +80×50%= 79 。
【数据说明】
对于 30% 数据,A=B=0 。
对于另外 30% 的数据, A=B=100 。
对于 100% 的数据,0≤A , B ,C≤100 且A、B、C 都是 10 的整数倍。


在这里插入图片描述


1.分析问题

  1. 已知:牛牛的作业成绩(a)、小测成绩(b)和期末考试成绩(c)。
  2. 未知:最终总成绩是多少?
  3. 关系:总成绩 = 作业成绩 × 20% + 小测成绩 × 30% + 期末考试成绩 × 50%。

2.定义变量

  • a:牛牛的作业成绩。
  • b:牛牛的小测成绩。
  • c:牛牛的期末考试成绩。
  • result:牛牛的总成绩,待计算。
int a, b, c, result;

3.输入数据

  • 从标准输入接收用户输入的牛牛的作业成绩(a)、小测成绩(b)和期末考试成绩(c)的值。
cin >> a >> b >> c;

4.数据计算

  • 根据总成绩计算公式,计算牛牛的总成绩:result = a × 20% + b × 30% + c × 50%。
  • 将百分比转换为小数进行计算。
result = a * 0.2 + b * 0.3 + c * 0.5;

5.输出结果

  • 将计算得到的牛牛总成绩 result 输出到标准输出。
cout << result;

完整代码如下:

#include <bits/stdc++.h>
using namespace std;int main() {// 一、分析问题// 已知:牛牛的作业成绩(a)、小测成绩(b)和期末考试成绩(c)。// 未知:最终总成绩是多少?// 关系:总成绩 = 作业成绩 × 20% + 小测成绩 × 30% + 期末考试成绩 × 50%// 二、数据定义// 定义整型变量:// a:牛牛的作业成绩// b:牛牛的小测成绩// c:牛牛的期末考试成绩// result:牛牛的总成绩,待计算int a, b, c, result;// 三、数据输入// 从标准输入接收用户输入的牛牛的作业成绩(a)、小测成绩(b)和期末考试成绩(c)的值cin >> a >> b >> c;// 四、数据计算// 根据总成绩计算公式,计算牛牛的总成绩:// result = a × 20% + b × 30% + c × 50%// 将百分比转换为小数进行计算result = a * 0.2 + b * 0.3 + c * 0.5;// 五、输出结果// 将计算得到的牛牛总成绩 result 输出到标准输出cout << result;// 程序执行完毕,返回 0 表示正常结束return 0;
}

问题:1345. 玫瑰花圃

类型:基本运算、小数运算


题目描述:

有一块n×n(n≥5,且 n 是奇数)的红玫瑰花圃,由 n×n 个小正方形花圃组成,现要求在花圃中最中间的一行、最中间的一列以及 4 个顶点处种植粉色玫瑰,请问粉玫瑰占地面积占整个玫瑰花圃总面积的百分比是多少?

输入:

一个整数 n (5≤n≤99,且n是奇数)

输出:

粉玫瑰占总玫瑰园的百分比,结果保留 1 位小数,显示为百分比的形式。

样例:

输入:

5

输出:

52.0%

在这里插入图片描述

在这里插入图片描述


1.分析问题

  1. 已知:一块 n × n(n≥5,且 n 是奇数)的红玫瑰花圃,最中间的一行、最中间的一列以及 4 个顶点处种植粉色玫瑰。
  2. 未知:粉玫瑰占地面积占整个玫瑰花圃总面积的百分比是多少?
  3. 关系:比例关系。粉玫瑰占地面积 = 4 个顶点 + 一行 + 一列 - 中心重复计数。

2.定义变量

  • n:花圃边长(单位:格),已知 n ≥ 5 且为奇数。

  • s1:花圃总面积(单位:格2)。

  • s2:粉色玫瑰占地面积(单位:格2)。

  • result:粉色玫瑰占地面积占总面积的百分比,待计算。

  int n, s1, s2;double result;

3.输入数据

  • 从标准输入接收用户输入的花圃边长 n 的值
cin >> n;

4.数据计算

  • 计算花圃总面积 s1 = n × n。
s1 = n * n;
  • 计算粉色玫瑰占地面积 s2 = 4 个顶点 + 一行 + 一列 - 中心重复计数
  • 由于 n 是奇数,中间一行和一列均包含 n 个格子,但中心格子会被重复计算一次,所以扣除
s2 = 4 + n + n - 1;
  • 计算粉色玫瑰占地面积占总面积的百分比 result = s2 / s1 × 100%
result = s2 * 1.0 / s1;

5.输出结果

  • 使用fixedsetprecision(1)设置输出格式,保留一位小数。
cout << fixed << setprecision(1) << result * 100 << "%";

完整代码如下:

#include <bits/stdc++.h>
using namespace std;int main() {// 一、分析问题// 已知:一块 n × n(n≥5,且 n 是奇数)的红玫瑰花圃,最中间的一行、最中间的一列以及 4 个顶点处种植粉色玫瑰。// 未知:粉玫瑰占地面积占整个玫瑰花圃总面积的百分比是多少?// 关系:比例关系。粉玫瑰占地面积 = 4 个顶点 + 一行 + 一列 - 中心重复计数// 二、数据定义// 定义整型变量:// n:花圃边长(单位:格),已知 n ≥ 5 且为奇数// s1:花圃总面积(单位:格2)// s2:粉色玫瑰占地面积(单位:格2)// 定义双精度浮点型变量:// result:粉色玫瑰占地面积占总面积的百分比,待计算int n, s1, s2;double result;// 三、数据输入// 从标准输入接收用户输入的花圃边长 n 的值cin >> n;// 四、数据计算// 计算花圃总面积 s1 = n × ns1 = n * n;// 计算粉色玫瑰占地面积 s2 = 4 个顶点 + 一行 + 一列 - 中心重复计数// 由于 n 是奇数,中间一行和一列均包含 n 个格子,但中心格子会被重复计算一次,所以扣除s2 = 4 + n + n - 1;// 五、输出结果// 计算粉色玫瑰占地面积占总面积的百分比 result = s2 / s1 × 100%// 使用`fixed`和`setprecision(1)`设置输出格式,保留一位小数result = s2 * 1.0 / s1;cout << fixed << setprecision(1) << result * 100 << "%";// 程序执行完毕,返回 0 表示正常结束return 0;
}

三、感谢

如若本文对您的学习或工作有所启发和帮助,恳请您给予宝贵的支持——轻轻一点,为文章点赞;若觉得内容值得分享给更多朋友,欢迎转发扩散;若认为此篇内容具有长期参考价值,敬请收藏以便随时查阅。

每一次您的点赞、分享与收藏,都是对我持续创作和分享的热情鼓励,也是推动我不断提供更多高质量内容的动力源泉。期待我们在下一篇文章中再次相遇,共同攀登知识的高峰!

在这里插入图片描述

这篇关于【NOI-题解】1320. 时钟旋转1323. 扩建花圃问题1462. 小明的游泳时间1565. 成绩(score)1345. 玫瑰花圃的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/916808

相关文章

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

解决Java中基于GeoTools的Shapefile读取乱码的问题

《解决Java中基于GeoTools的Shapefile读取乱码的问题》本文主要讨论了在使用Java编程语言进行地理信息数据解析时遇到的Shapefile属性信息乱码问题,以及根据不同的编码设置进行属... 目录前言1、Shapefile属性字段编码的情况:一、Shp文件常见的字符集编码1、System编码

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图