【蓝桥杯日记】复盘篇二:分支结构

前言

  本篇笔记主要进行复盘的内容是分支结构,通过学习分支结构从而更好巩固之前所学的内容。

目录

前言

目录

🍊1.数的性质

分析:

知识点:

🍅2.闰年判断

说明/提示

分析:

知识点:

🍑3.肥胖问题

说明/提示

分析: 

知识点:

🌰4.三位数排序

分析:

知识点:

🍓5.买铅笔

分析:

知识点:

总结


🍊1.数的性质

题目描述

一些整数可能拥有以下的性质:

  • 性质 1:是偶数;
  • 性质 2:大于 4 且不大于 12。

小 A 喜欢这两个性质同时成立的整数;Uim 喜欢这至少符合其中一种性质的整数;八尾勇喜欢刚好有符合其中一个性质的整数;正妹喜欢不符合这两个性质的整数。现在给出一个整数 x,请问他们是否喜欢这个整数?

输入格式

输入一个整数x (0≤x≤1000)

输出格式

输出这4个人是否喜欢这个数字,如果喜欢则输出 1,否则输出 0,用空格分隔。输出顺序为:小 A、Uim、八尾勇、正妹。

输入输出样例

输入 #1

12

输出 #1

1 1 0 0
分析:

   通过非嵌套if来对每一种条件判断,可以把是否正确的数值存储在数组里边或者直接输出。

知识点:

  题目的主要知识点是if条件的判断和正确使用大小于符号,&&和||组合使用的情况。

代码如下:


import java.util.Scanner;public class Main {static int arr[] = new int[4];public static void main(String[] args) {Scanner sc = new Scanner(System.in);int x = sc.nextInt();if (x % 2 == 0 && (x > 4 && x <= 12)) {arr[0]++;}if (x % 2 == 0 || (x > 4 && x <= 12)) {arr[1]++;}if ((x % 2 == 0) && !(x > 4 && x <= 12) || (!(x % 2 == 0) && (x > 4 && x <= 12))) {arr[2]++;}if (!(x % 2 == 0) && !(x > 4 && x <= 12)) {arr[3]++;}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}

🍅2.闰年判断

题目描述

输入一个年份,判断这一年是否是闰年,如果是输出 1,否则输出 0。

输入格式

输入一个正整数 n,表示年份。

输出格式

输出一行。如果输入的年份是闰年则输出 1,否则输出 0。

输入输出样例

输入 #1

1926

输出 #1

0

输入 #2

1900

输出 #2

0

输入 #3

2000

输出 #3

1

输入 #4

1996

输出 #4

1

说明/提示

数据保证,1582≤n≤2020 且年份为自然数。

输入一个年份,判断这一年是否是闰年,如果是输出 1,否则输出 0。

输入格式

输入一个正整数 n,表示年份。

分析:

  通过if条件判断语句进行判断

知识点:

 闰年:能被4整除且能被100整除,或则能被400整除的才是闰年。

代码如下:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int x=sc.nextInt();if((x%4==0&&x%100!=0)||x%400==0)System.out.println(1);elseSystem.out.println(0);}
}

🍑3.肥胖问题

题目描述

BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是 m/(n*n),其中 m 是指体重(千克),h 是指身高(米)。不同体型范围与判定结果如下:

  • 小于 18.518.5:体重过轻,输出 Underweight
  • 大于等于 18.5 且小于 24:正常体重,输出 Normal
  • 大于等于 24:肥胖,不仅要输出 BMI 值(使用 cout 的默认精度),然后换行,还要输出 Overweight

现在给出体重和身高数据,需要根据 BMI 指数判断体型状态并输出对应的判断。

对于非 C++ 语言,在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀 0,不要输出后缀 0。

请注意,保留六位有效数字不是保留六位小数。例如 123.4567 应该输出为 123.457,5432.10 应该输出为 5432.15432.1。

输入格式

共一行。

第一行,共 2个浮点数m,h,分别表示体重(单位为 kg),身高(单位为 m)。

输出格式

输出一行一个字符串,表示根据 BMI 的对应判断。特别地,对于 Overweight 情况的特别处理请参照题目所述。

输入输出样例

输入 #1

70 1.72

输出 #1

Normal

输入 #2

100 1.68

输出 #2

35.4308
Overweight

说明/提示

对于所有数据,40≤m≤120,1.4≤h≤2.0。m 和 h 的小数点后不超过三位。

分析: 

  通过if来进行对体重进行判断,进行合理的输出。

知识点:

保留小数位数,可以使用printf进行对字符串的格式化输出

printf里边的格式说明:

格式说明符

  • %d - 十进制整数
  • %f - 浮点数
  • %s - 字符串
  • %c - 字符
  • %b - 布尔值
  • %n - 平台特定的换行符
  • %% - 百分号字符

额外的修饰符:

  • + - 强制在数值前面显示正号或负号
  • - - 左对齐
  • 0 - 数字前面补0
  • 空格 - 显示正数时在前面显示空格
  • . - 指定小数点后的精度
  • m.n - m指定整个字段的最小宽度,n指定小数点后的位数

代码如下:

import javax.script.ScriptContext;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);double m,h,weight;m=sc.nextDouble();h=sc.nextDouble();weight=m/Math.pow(h,2);if(weight<18.5){System.out.println("Underweight");} else if (weight>=18.5&&weight<24) {System.out.println("Normal");}else {
//            需要保留小数位数,输出不固定的小数位数System.out.printf("%.4f",weight);System.out.println();System.out.print("Overweight");}}
}

🌰4.三位数排序

题目描述

给出三个整数 a,b,c(0≤a,b,c≤100),要求把这三位整数从小到大排序。

输入格式

输入三个整数 a,b,c,以空格隔开。

输出格式

输出一行,三个整数,表示从小到大排序后的结果。

输入输出样例

输入 #1

1 14 5

输出 #1

1 5 14

输入 #2

2 2 2

输出 #2

2 2 2
分析:

  以上内容是对三位数字的排序问题,可以使用if来进行判断。也可以使用排序算法来进行排序,下列我们是使用系统自带的排序函数:Arrays类中的sort()来实现的,sort()采用的是桶排序。后序会对排序进行重点回顾。

知识点:

Arrays类中的sort()可以实现对数组的升序排序

代码如下:

import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int arr[]=new int[3];for (int i = 0; i < arr.length; i++) {arr[i]= sc.nextInt();}Arrays.sort(arr);for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}}
}

🍓5.买铅笔

题目描述

P 老师需要去商店买 n 支铅笔作为小朋友们参加 NOIP 的礼物。她发现商店一共有 3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P 老师决定只买同一种包装的铅笔。

商店不允许将铅笔的包装拆开,因此 P 老师可能需要购买超过 n 支铅笔才够给小朋友们发礼物。

现在 P 老师想知道,在商店每种包装的数量都足够的情况下,要买够至少 n 支铅笔最少需要花费多少钱。

输入格式

第一行包含一个正整数 n,表示需要的铅笔数量。

接下来三行,每行用 2 个正整数描述一种包装的铅笔:其中第 1 个整数表示这种包装内铅笔的数量,第 2 个整数表示这种包装的价格。

保证所有的 7 个数都是不超过 10000 的正整数。

输出格式

1 个整数,表示 P 老师最少需要花费的钱。

输入输出样例

输入 #1复制

57
2 2
50 30
30 27

输出 #1

54

输入 #2

9998
128 233
128 2333
128 666

输出 #2

18407

输入 #3

9999
101 1111
1 9999
1111 9999

输出 #3

89991

说明/提示

铅笔的三种包装分别是:

  • 22 支装,价格为 22;
  • 5050 支装,价格为 3030;
  • 3030 支装,价格为 2727。

P 老师需要购买至少 5757 支铅笔。

如果她选择购买第一种包装,那么她需要购买 29份,共计 2×29=58 支,需要花费的钱为 2×29=58。

实际上,P 老师会选择购买第三种包装,这样需要买 22 份。虽然最后买到的铅笔数量更多了,为 30×2=60 支,但花费却减少为 27×2=54,比第一种少。

对于第二种包装,虽然每支铅笔的价格是最低的,但要够发必须买 2 份,实际的花费达到了 30×2=60,因此 P 老师也不会选择。

所以最后输出的答案是 54。

数据范围

保证所有的 7 个数都是不超过 10000 的正整数。

分析:

    采用二维数组来对三组数据进行保存,设置初始值result设置为Integer类中的最大值,当每次的money小于result,则result就等于当前的money。判断n只铅笔能不能被每套铅笔进行整除,能整除则说明可以买到正好的铅笔个数,如果不能整除则说明必须多买一套铅笔,才能保证够分。

知识点:

Integer类的最大值Integer.MAX_VALUE和Integer类的最小值为Integer.MIN_VALUE

代码如下:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n,result=Integer.MAX_VALUE;n=sc.nextInt();int arr[][]=new int[3][2];for (int i = 0; i < 3; i++) {for (int j = 0; j < 2; j++) {arr[i][j]=sc.nextInt();}}for (int i = 0; i < 3; i++) {int money=0;int x=n/arr[i][0];money=arr[i][1]*x;if(n%arr[i][0]!=0)money+=arr[i][1];if(money<result)result=money;}System.out.println(result);}
}

总结

本次复盘篇需要掌握如下内容:

1.if条件语句的使用。

2.Arrays类sort()函数的使用

3.如何保留小数位数

4.相关表达式的使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/655891.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用 Google 搜索引擎保姆级教程(附链接)

前言 需要挂梯子 一、介绍 "Google语法"通常是指在 Google 搜索引擎中使用一系列特定的搜索语法和操作符来精确地定义搜索查询。这些语法和操作符允许用户过滤和调整搜索结果&#xff0c;提高搜索的准确性。 二、安装 Google 下载 Google 浏览器 Google 官网ht…

自动化测试——selenium工具(web自动化测试)

1、自动化测试 优点&#xff1a;通过自动化测试有效减少人力的投入&#xff0c;同时提高了测试的质量和效率。 也用于回归测试。随着版本越来越多&#xff0c;版本回归的压力越来越大&#xff0c;仅仅通过人工测试 来回归所以的版本肯定是不现实的&#xff0c;所以…

如何在 Ubuntu 中安装 Microsoft Edge 浏览器

微软终于聪明了一回&#xff0c;也学会了「打不过就加入」。Microsoft Edge 浏览器的 Linux 稳定版已经于 2020 年 10 月 23 日发布&#xff0c;并提供给 Linux 发行版使用。除了官方 Edge APT 源以外&#xff0c;还提供了.deb和.rpm格式的安装包。 Microsoft Edge 基于 Chrom…

【Linux操作系统】:Linux开发工具编辑器vim

目录 Linux 软件包管理器 yum 什么是软件包 注意事项 查看软件包 如何安装软件 如何卸载软件 Linux 开发工具 Linux编辑器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 插入模式 插入模式切换为命令模式 移动光标 删除文字 复制 替换 撤销 跳至指…

Python爬虫解析库安装

解析库的安装 抓取网页代码之后&#xff0c;下一步就是从网页中提取信息。提取信息的方式有多种多样&#xff0c;可以使用正则来提取&#xff0c;但是写起来相对比较烦琐。这里还有许多强大的解析库&#xff0c;如 lxml、Beautiful Soup、pyquery 等。此外&#xff0c;还提供了…

备战蓝桥杯---数据结构与STL应用(基础实战篇1)

话不多说&#xff0c;直接上题&#xff1a; 当然我们可以用队列&#xff0c;但是其插入复杂度为N,总的复杂度为n^2,肯定会超时&#xff0c;于是我们可以用链表来写&#xff0c;同时把其存在数组中&#xff0c;这样节点的访问复杂度也为o(1).下面是AC代码&#xff1a; 下面我们来…

Shell中sed编辑器

1.简介 sed是一种流编辑器&#xff0c;流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据&#xff0c;这些命令要么从命令行中输入&#xff0c;要么存储在一个 命令文本文件中。 2.sed编辑器的工作流程 sed…

《元梦之星》bug层出不穷,逼得玩家研发“自救套路”?

对于bug&#xff0c;想必喜爱游戏的玩家都不会陌生&#xff0c;在各类软件或者游戏中偶尔会出现一些影响正常运行的bug&#xff0c;但是并不会引起很大的反响。大家之所以能以平常心看待是因为各大游戏或者是应用软件中的bug都会因为玩家的及时发现而进行修复&#xff0c;在出现…

软件价值3-A*算法寻路

A*算法&#xff08;A-star算法&#xff09;是一种启发式搜索算法&#xff0c;主要用于在图或网络中找到从起始节点到目标节点的最佳路径。它结合了Dijkstra算法的广度优先搜索和贪婪最优优先搜索的特点&#xff0c;通过估算从起始节点到目标节点的代价来指导搜索方向。 A*算法…

Android中属性property_get和property_set的详细用法介绍

1&#xff0c;property_get和property_set的作用说明 在Android操作系统中&#xff0c;property_get和property_set是用于获取和设置系统属性的函数。这些属性通常用于存储和读取配置信息&#xff0c;例如设备配置、网络设置、系统参数等。 property_get函数用于获取指定属性…

二叉树中和为某一值的路径

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

一、创建Vue3项目

1. 下载 node.js 下载地址&#xff1a;https://nodejs.org/zh-cn 优先选择 16 版本; node -v || node -version 可以检查本地 node.js 版本 2. 设置淘宝镜像源 npm config set registry https://registry.npmmirror.com/ 设置淘宝镜像源 npm config get registry 查看当前镜像…

如何获得《幻兽帕鲁》隐藏帕鲁唤夜兽?13000个配种配方查询 幻兽帕鲁Steam好评率还在涨 Mac苹果电脑玩幻兽帕鲁 Crossover玩Windows游戏

《幻兽帕鲁》是一款Steam平台热门游戏&#xff0c;开放式大陆和养成式冒险结合&#xff0c;成为2024首款热门游戏&#xff0c;不过由于官方仅发布了Windows版的游戏客户端&#xff0c;Mac用户无法直接玩&#xff0c;好在有Crossover这样的神器&#xff0c;让苹果电脑也能玩上《…

JavaScript 基础 (二)

文章目录 JavaScript 基础 &#xff08;二&#xff09;一.运算符1.1 **算术运算符**1.1.1 基础1.1.2 算术运算符执行的优先级顺序1.1.3 小结 1.2 **赋值运算符**1.2.1 基础1.2.2 小结 1.3 **一元运算符**1.3.1 基础1.3.2 小结 1.4 **比较运算符**1.4.1 比较运算符的介绍1.4.2 比…

如何改变音频的频率教程

这是一篇教你如何通过一些工具改变音频频率的教学文章。全程所用的软件都是免费的。 本文用到的软件&#xff1a; AIX智能下载器 用于抓取任何视频网站资源的插件 格式工厂 将mp4转化为mp3 Audacity 改变音频频率的软件 如果你已备好mp3或其他格式的音频&#xff0c;那么直接看…

flutter module打包成framework引入原生工程

Flutter - 将 Flutter 集成到现有项目&#xff08;iOS - Framework篇&#xff09; 本篇文章大幅参考了 caijinglong 大佬的总结文章&#xff1a; 把flutter作为framework添加到已存在的iOS中[1] 用 Flutter 来开发&#xff0c;从来都不可能是新开的一个纯 Flutter 项目&#xf…

Ubuntu22.04 网络图标突然消失

本来好好的&#xff0c;突然就发现没有网络了&#xff0c;图标也不见了。 特别是Ubuntu虚拟机&#xff0c;容易出现此问题。 修复办法 1. sudo service network-manager stop2. sudo rm /var/lib/NetworkManager/NetworkManager.state3. sudo service network-manager start到…

【STM32CubeMX】生成代码错误

1、不能有中文路径 参考博客&#xff1a; http://t.csdnimg.cn/OdYi2 生成的代码已经帮忙初始化&#xff0c;只需修改main函数的while&#xff08;1&#xff09;即可&#xff1a; 2、有可能是Java环境版本不对 我安装的时候操作正确

The Rise and Potential of Large Language Model Based Agents: A Survey 中文翻译

大型语言模型代理的崛起与潜力&#xff1a;综述 摘要 长期以来&#xff0c;人类一直追求与或超越人类水平的人工智能&#xff08;AI&#xff09;&#xff0c;而人工智能代理被视为实现这一目标的有希望的方式。人工智能代理是感知环境、做出决策并采取行动的人工实体。已经有…

林浩然探索庄子美妙哲学境界

林浩然探索庄子美妙哲学境界 Lin Haoran Explores the Sublime Philosophical Realm of Zhuangzi 在现代社会这个信息洪流中&#xff0c;犹如一片繁华喧嚣的都市丛林&#xff0c;青年学者林浩然却如一只挣脱了世俗束缚的鲲鹏&#xff0c;以其独特的视角和深邃的思考&#xff0c…