【蓝桥杯日记】复盘篇三——循环结构

 前言

   本篇内容是对循环结构进行复盘的,循环可谓是在基础阶段特别重要的东西,是三大结构(顺序结构、选择结构、循环结构)中最重要的结构之一。

目录

🍑1.找最小值

分析:

知识点:

代码如下

🍊2.打分

分析:

知识点:

代码如下

🍎3.质数口袋

分析:

知识点:

代码如下

🍅4.阶乘之和

分析:

知识点:

代码如下

总结


🍑1.找最小值

题目描述

给出 n 和 n 个整数,求这 n 个整数中最小值是什么。

输入格式

第一行输入一个正整数 n,表示数字个数。

第二行输入 n 个非负整数,表示 a1​,a2​…an​,以空格隔开。

输出格式

输出一个非负整数,表示这 n 个非负整数中的最小值。

输入输出样例

输入 #1

8
1 9 2 6 0 8 1 7

输出 #1

0

说明/提示

数据保证,n≤100 且 0≤an≤1000。

分析:
  1. 使用数组来接收输入的n个值。
  2. 设置一个最小值min=0,由于题目说的是输入的是非负整数,故是等于0的。
  3. 执行n次循环每次判断数组中的数值是否比min中的数值小,如果小于则对min中的数值进行替换。
  4. 最后输入min中的数值
知识点:
  • 使用数组对大量相同类型的数值进行存储。
代码如下
   Scanner sc=new Scanner(System.in);int n=sc.nextInt();int arr[]=new int[n];for (int i = 0; i < n; i++) {arr[i]=sc.nextInt();}
//        求最小值int min=0;for (int i=1;i<arr.length;i++){if(arr[min]>arr[i])min=i;}System.out.println(arr[min]);

🍊2.打分

题目描述

现在有n(n≤1000) 位评委给选手打分,分值从 0到 10。需要去掉一个最高分,去掉一个最低分(如果有多个最高或者最低分,也只需要去掉一个),剩下的评分的平均数就是这位选手的得分。现在输入评委人数和他们的打分,请输出选手的最后得分,精确到 2 位小数。

输入格式

第一行输入一个正整数 n,表示有 n 个评委。

第二行输入 n 个正整数,第 i 个正整数表示第 i 个评委打出的分值。

输出格式

输出一行一个两位小数,表示选手的最后得分。

输入输出样例

输入 #1

5
9 5 6 8 9

输出 #1

7.67

说明/提示

数据保证,3≤n≤1000,每个评委打出的分值为为 0到 10(含 0 与 10)之间的整数。

分析:
  1. arr数组保存裁判的打分,使用sum进行对裁判的打分进行累加。
  2. Arrays类的sort方法进行对数组中的内容进行从小到大的排序,这样直接取出最小值arr[0]和最大值arr[arr.length-1]
  3. 累加和sum减去最大值和最小值,除以评委的个数n减去2为最大值和最小值。
  4. 使用字符串格式化函数String.format()进行保留小数位数,如果不明白字符串格式化语句可以去看一下复盘篇二
知识点:
  •   本题设计的知识点,之前的篇幅已经说过了。
代码如下
import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();int arr[]=new int[n];double sum=0;for (int i = 0; i < arr.length; i++) {arr[i] = sc.nextInt();sum+=arr[i];}Arrays.sort(arr);System.out.println(String.format("%.2f",(sum-arr[0]-arr[arr.length-1])/(n-2)));}
}

🍎3.质数口袋

题目描述

小 A 有一个质数口袋,里面可以装各个质数。他从 2 开始,依次判断各个自然数是不是质数,如果是质数就会把这个数字装入口袋。

口袋的负载量就是口袋里的所有数字之和。

但是口袋的承重量有限,装的质数的和不能超过 L。给出 L,请问口袋里能装下几个质数?将这些质数从小往大输出,然后输出最多能装下的质数的个数,数字之间用换行隔开。

输入格式

一行一个正整数 L。

输出格式

将这些质数从小往大输出,然后输出最多能装下的质数个数,所有数字之间有一空行。

输入输出样例

输入 #1

100

输出 #1

2
3
5
7
11
13
17
19
23
9

输入 #2

5

输出 #2

2
3
2

输入 #3

11

输出 #3

2
3
5
3

说明/提示

数据保证,1≤L≤105。

分析:
  1. 使用count进行基数,使用sum来进行记录当前素数的总数即本题中的质量。
  2. 判断是否为素数,如果为素数则进行则进行累加且判断是否超出了质量,超出了质量则循环结束。
知识点:
  • 素数的概念:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。例如,2、3、5、7、11、13、17、19、23等都是素数。
  • 我们可以使用枚举的方法来判断是否为素数,代码中的trial()函数就是用来判断素数的。偶数一定不为素数除了2,使用for循环进行判断是否能够被其他数值整除,如果可以则不是素数,反之则是。
  • 我们只需要除到自身的平方根。
代码如下
import java.util.Scanner;
public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);
//        装入的容量int n = sc.nextInt();
//        记录可以装入的个数int count = 0;
//        当前的累加和int sum = 0;
//        素数的初始值int i = 2;while (true) {if (trial(i)) {if (sum + i <= n) {System.out.println(i);
//                  累加sumsum += i;
//                  count累加count++;} else {break;}}
//            控制i的增加i++;}System.out.println(count);}//    判断素数static boolean trial(int x) {if (x % 2 == 0 && x != 2)return false;for (int i = 2; i <= Math.sqrt(x); i++) {if (x % i == 0)return false;}return true;}
}

🍅4.阶乘之和

题目描述

用高精度计算出 !S=1!+2!+3!+⋯+n!(n≤50)。

其中 ! 表示阶乘,定义为n!=n×(n−1)×(n−2)×⋯×1。例如5!=5×4×3×2×1=120。

输入格式

一个正整数 n。

输出格式

一个正整数 S,表示计算结果。

输入输出样例

输入 #1

3

输出 #1

9

说明/提示

【数据范围】

对于 100%的数据,1≤n≤50。

分析:

本题要求是求出n的阶乘,由于int型和long型无法满足题目给出的要求,如果贸然使用会出现溢出的情况。

我们就需要使用java中的高精度类型BigInteger类,进行阶乘的操作。

知识点:

BigInteger类常用的方法:

  • abs() 返回一个BigInteger,它的值是此BigInteger的绝对值。
  • add(BigInteger val) 返回值为 (this + val) 。
  • compareTo(BigInteger val) 将此BigInteger与指定的BigInteger进行比较。 
  • divide(BigInteger val) 返回值为 (this / val) 。 
  • multiply(BigInteger val) 返回值为 (this * val) 。 
  • modInverse(BigInteger m) 返回值为 (this  mod m) 。  
  • subtract(BigInteger val) 返回值为 (this - val) 。 

 BigInteger类静态常量:

  • ZERO BigInteger常数为零。
  • ONE BigInteger常数一。
  • TEN BigInteger常数十。
代码如下
import java.math.BigInteger;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);BigInteger sum=new BigInteger("0");int n=sc.nextInt();BigInteger result=new BigInteger("1");for (int i = 1; i <= n; i++) {result=result.multiply(new BigInteger(String.valueOf(i)));sum=sum.add(result);}System.out.println(sum);}}

总结

 本篇的复习要点:

  1.   for循环和while循环体的基本结构。
  2.   素数的判断方法。
  3.   高精度BigInteger类的使用。

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

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

相关文章

数据库空间爆了怎么处理

作者&#xff1a; 马文斌 时间&#xff1a; 2024-1-29 标签&#xff1a; mysql 磁盘空间 爆满 binlog 背景 近期数据库空间一直告警&#xff0c;平时这套数据库集群是不会有磁盘空间告警的&#xff0c;难道是最近业务量猛增了吗&#xff1f;咱们来瞧瞧到底怎么回事&…

启动盘重装ubuntu22系统

win+R msinfo32查看 插入制作好的u盘电脑开机 进入BIOS界面的方法有多种,以下是一些常见的方法: 进入BIOS界面的最常见按键有: Del键:大多数台式机通过在启动时按下Del键来进入BIOS。Esc键:在AMI BIOS和某些品牌电脑中,进入BIOS系统需要按“Esc”键,一般在开机画面…

草图导入3d之后渲染模型发光怎么回事?---模大狮模型网

在草图大师中&#xff0c;当导入3D模型之后发现模型发光通常是由于模型的材质属性或灯光设置所导致的。以下是一些可能的原因和解决方法&#xff1a; 材质属性设置&#xff1a;某些3D模型文件可能包含了发光材质属性&#xff0c;导致模型在草图大师中显示为发光状态。您可以尝试…

高性能跨平台网络通信框架 HP-Socket v6.0.1

项目主页 : http://www.oschina.net/p/hp-socket开发文档 : https://www.docin.com/p-4592706661.html下载地址 : https://github.com/ldcsaa/HP-SocketQQ Group: 44636872, 663903943 v6.0.1 更新 一、主要更新 优化Linux通信组件多路复用处理架构&#xff0c;避免“惊群”问…

AI赋能编程 | 自动化工具助力高效办公

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言泡泡AI工具卡片思维导图Markdown编辑器 其他工具文件免费处理工具结语 合集…

【大厂AI课学习笔记】1.3 人工智能产业发展(3)

1.3.1 供给侧 技术层面&#xff1a;从实验室走向大规模的商用。 数据层面&#xff1a;数据正式成为重要的生产要素。 市场&#xff1a;供需互促的正向市场环境建立。 资本&#xff1a;走出炒作泡沫&#xff0c;聚焦价值领域。 平台&#xff1a;大厂普遍开放生态。 MORE&am…

基于二值化图像转GCode的螺旋扫描实现

基于二值化图像转GCode的螺旋扫描实现 什么是双向扫描螺旋扫描代码示例 基于二值化图像转GCode的螺旋扫描实现 什么是螺旋扫描 螺旋扫描&#xff08;Spiral Scanning&#xff09;是激光雕刻中一种特殊的扫描方式&#xff0c;其特点是激光头按照螺旋形状逐渐向外移动&#xf…

【web | CTF】攻防世界 easyupload

天命&#xff1a;好像也不太easy 目录 步骤一&#xff1a;准备文件 步骤二&#xff1a;上传文件 本条题目有好几个防御点&#xff1a; 后缀名防御&#xff1a;只能上传图片格式内容防御&#xff1a;内容不能有php图片头防御&#xff1a;检测文件的头部信息&#xff0c;是否是…

zookeeper(2) 服务器动态上下线监听和分布式锁案例

案例一&#xff1a;服务器动态上下线监听 某分布式系统中&#xff0c;主节点可以有多台&#xff0c;可以动态上下线&#xff0c;任意一台客户端都能实时感知 到主节点服务器的上下线。 1.服务端代码 package com.atguigu.case1;import org.apache.zookeeper.*;import java.io…

微信小程序在线客服源码系统:聊天记录云端实时保存 带完整的搭建教程

微信小程序已经成为企业开展线上业务的重要渠道。然而&#xff0c;在小程序中提供客户服务需要解决聊天记录的存储与查询问题。传统的客服系统往往只能在本地保存聊天记录&#xff0c;一旦客户端出现问题&#xff0c;聊天记录可能会丢失&#xff0c;给企业带来巨大的损失。为了…

双屏联动系统在展厅设计中的互动类型与效果

随着各项多媒体技术的快速发展&#xff0c;让展厅中的各类展项得到技术升级&#xff0c;其中作为电子设备中最基础的显示技术&#xff0c;不仅优化了内容的展示质量&#xff0c;还实现了更具互动性的创新技术&#xff0c;如双屏联动系统就是当前展厅设计中最常见的技术类型之一…

【C++】类和对象(1)

上节我们学习了C入门的一些语法知识&#xff0c;这篇博客来学习类和this指针。 目录 面向过程和面向对象的初步认识 类的引入 类的定义 类的访问限定符及封装 访问限定符 封装 类的作用域 类的实例化 类对象大小 this指针 this指针特性 面向过程和面向对象的初步认识…

UG949 适用于 FPGA 和 SoC 的UltraFast 设计方法指南

使用RTL创建设计 定义RTL设计层级 模块边界输出进行寄存 即寄存器输出&#xff0c;打一拍 IP的使用 AMBA AXI

AI 原生时代的云计算

本文整理自2023年 12 月 20 日举办的「2023 百度云智大会智算大会」主论坛&#xff0c;百度副总裁谢广军的主题演讲《AI 原生时代的云计算》。 &#xff08;视频回放链接&#xff1a;https://cloud.baidu.com/summit/aicomputing_2023/index.html&#xff09; 大模型的到来&…

Leetcode—807. 保持城市天际线【中等】

2024每日刷题&#xff08;一零四&#xff09; Leetcode—807. 保持城市天际线 实现代码 class Solution { public:int maxIncreaseKeepingSkyline(vector<vector<int>>& grid) {int n grid.size();vector<int> row(n);vector<int> col(n);int a…

代理模式详解(重点解析JDK动态代理)

- 定义 在解析动态代理模式之前&#xff0c;先简单看下整个代理模式。代理模式分为普通代理、强制模式、动态代理模式。其中动态代理模式主要实现方式为Java JDK提供的JDK动态代理&#xff0c;第三方类库提供的&#xff0c;例如CGLIB动态代理。 代理模式就是为其他对象提供一种…

ArcGIS学习(二)属性表的基本操作

ArcGIS学习(二)属性表的基本操作 1.查看属性表 ArcGIS是处理空间数据的平台。对于空间数据,大家可以理解成它是由两个部分构成:1.一个是空间形体,也就是点、线、面三种。线又可以分为直线、曲线,面又分为圆形、正方形、不规则形体等;2.另外一个部分是空间形体所附带的…

关于Spring框架的 @Configuration 与@Service 加载顺序哪个先后(某些环境加载是随机的)

很多资料都说Configuration 优先加载&#xff0c;Service后加载&#xff0c;如下图&#xff1a; 本来也是以为 Configuration 优先加载于 Service &#xff0c;那参数处理放在Configuration注入完后&#xff0c;service构建时就可以拿来用的&#xff0c;在我在IDEA的调试时下断…

喜讯 | 经纬恒润整车电子电气测试实验室通过一汽研发总院外部实验室资质认证!

近日&#xff0c;经纬恒润整车电子电气测试实验室成功通过中国一汽研发总院的资质评定&#xff0c;获得外部实验室认可证书。这是继经纬恒润测试实验室获得一汽智能网联开发院车载以太网测试资质认证之后的又一次认可&#xff0c;它将拓宽经纬恒润与红旗新能源及相关零部件供应…

分组密码工作模式

在密码学中&#xff0c;分组密码工作模式可以提供诸如机密性或真实性的信息服务。 基于分组的对称加密算法&#xff08;DES 、AES等&#xff09;只是描述如何根据加密密钥对一段固 定长度&#xff08;块&#xff09;的数据进行加密&#xff0c;对于比较长的数据&#xff0c;分组…