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

【Java】循环语句练习

文章目录

  • 1. 计算5的阶乘
  • 2. 计算 1! + 2! + 3! + 4! + 5!
  • 3. 数字9 出现的次数
  • 4. 判定素数
  • 5. 求1-100之间的素数
  • 6. 求2个整数的最大公约数
  • 7. 计算分数的值
  • 8. 模拟登陆
  • 9. 输出乘法口诀表
  • 10. 求出0~999之间的所有“水仙花数”并输出
  • 11. 猜数字游戏🙈

1. 计算5的阶乘

n! (阶乘),一个正整数的阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!,即n!=1×2×3×…×(n-1)×n。5! = 1×2×3×4x5。

  • while循环实现
public class Test {//计算5的阶乘public static void main(String[] args) {int n = 1;int ret = 1;while(n<=5){ret *= n;n++;}System.out.println(ret);}
}
  • for循环实现
public class Test {//计算5的阶乘public static void main(String[] args) {int ret = 1;for (int n = 1;n <= 5;n++){ret *= n;}System.out.println(ret);}
}

在这里插入图片描述

我们上一题学习了n阶乘的计算,这一题计算阶乘的和。阶乘的求和就是在计算阶乘的基础上再加一层循环。

2. 计算 1! + 2! + 3! + 4! + 5!

  • while 循环实现
public class Test {//计算 1! + 2! + 3! + 4! + 5!public static void main(String[] args) {int i = 1;int sum = 0;//外层循环负责求阶乘的和while(i <= 5){int n = 1;int ret = 1;//内层循环负责完成求阶乘的细节while (n <= i){ret *= n;n++;}sum += ret;i++;}System.out.println("sum="+sum);}
}
  • for 循环实现
public class Test {//计算 1! + 2! + 3! + 4! + 5!public static void main(String[] args) {int sum = 0;for (int i = 1;i <= 5;i++){int ret = 1;for(int n = 1;n <= i;n++){ret *= n;}sum += ret;}System.out.println("sum="+sum);}
}

在这里插入图片描述

3. 数字9 出现的次数

编写程序数一下 1到 100 的所有整数中出现多少个数字9
个位数为9的数字有9,19,29……99;个位数判断为 i % 10 == 9;
十位数为9的数字有91,92,93……99;十位数判断为 i % 10 == 9。
其中99出现了两次

public class Test {public static void main(String[] args) {int count = 0;for(int i = 0;i <= 100;i++){if(i % 10 == 9){count++;}if(i / 10 == 9){count++;}}System.out.println(count);}
}

在这里插入图片描述

4. 判定素数

给定一个数字,判定一个数字是否是素数。
素数是只能被 1 和它本身整除的数。也就是说能被 2 到 n-1 整除的数都不是素数。

import java.util.Scanner;public class Test {//判断一个数是不是素数public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int i = 2;for (i = 2;i < n ; i++) {if(i % n == 0){System.out.println(i+"不是素数");}}if(i == n){System.out.println(i+"是素数");}}
}

在这里插入图片描述

5. 求1-100之间的素数

上一题我们是从键盘输入一个数,判断是否为素数,而这一题则是在上一题的基础上从键盘输入1-100的数,判断这些数中有哪些数是素数。

public class Test {public static void main(String[] args) {//打印1-100之间的素数Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();for(int k = 1;k <= n;k++){int i = 2;for (i = 2;i < n ; i++) {if(k % i == 0){break;}}if(i == k){System.out.println(k+"是素数");}}}
}
  • 优化1
public class Test {//k = a * b//16 = 1 * 16//16 = 2 * 8//16 = 4 * 4//其中一定会有一个乘数小于k/2,所以我们将判断条件改为i <= k/2效率则更高public static void main(String[] args) {//打印1-100之间的素数Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();for(int k = 1;k <= n;k++){int i = 2;for (i = 2;i <= k/2 ; i++) {if(k % i == 0){break;}}if(i >k/2){System.out.println(k+"是素数");}}}
}
  • 优化2
public class Test {//k = a * b//16 = 1 * 16//16 = 2 * 8//16 = 4 * 4//我们会发现一定会有一个值<=根号k//根号在java中需要调用Math.sqrt(k)public static void main(String[] args) {//打印1-100之间的素数Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();for(int k = 1;k <= n;k++){int i = 2;for (i = 2;i <= Math.sqrt(k) ; i++) {if(k % i == 0){break;}}if(i > Math.sqrt(k)){System.out.println(k+"是素数");}}}
}

在这里插入图片描述

6. 求2个整数的最大公约数

给定两个数,求这两个数的最大公约数
例如:
输入:20 40
输出:20

public class Test {//辗转相除法求最大公约数public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int a = scanner.nextInt();int b = scanner.nextInt();int tmp = a % b;while(tmp != 0){a = b;b = tmp;tmp = a % b;}System.out.println(b);}
}

在这里插入图片描述

7. 计算分数的值

计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。

public class Test {public static void main(String[] args) {double sum = 0;int flg = 1;for (int i = 1; i <= 100 ; i++) {sum = sum + 1.0/i * flg;flg = -flg;//正负交替}System.out.println(sum);}
}

在这里插入图片描述

8. 模拟登陆

编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输 入,最多输入三次。三次均错,则提示退出程序 。

字符串的比较不可以使用 == 而需要使用到 equals 库方法,equals方法是由 password 点出来的,password 是一个变量能点出一个方法是因为 password 是 string 类型的。

public class Test {//模拟登录public static void main(String[] args) {Scanner in = new Scanner(System.in);int count = 3;while (count != 0){System.out.println("请输入你的密码,你还有 "+ count +" 次机会!");String password = in.nextLine();if(password.equals("1234")){System.out.println("登录成功!");break;}else{System.out.println("密码错误!");count--;}}}
}

在这里插入图片描述

9. 输出乘法口诀表

输出n*n的乘法口诀表,n由用户输入。

public class Test {//九九乘法表public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();for (int i = 1; i <= n; i++) {for (int j = 1; j <= i; j++) {System.out.print(j+"*"+ i +" = " +j*i+" ");}System.out.println();}}
}

在这里插入图片描述

10. 求出0~999之间的所有“水仙花数”并输出

(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数
本身,如:153=1^3+5^3+3^3 ,则153是一个“水仙花数”。)
一位自幂数:独身数
三位自幂数:水仙花数
三位的水仙花数共有4个:153,370,371,407。

public class Test {//水仙花数//153 = 1^3 + 5^3 + 3^3public static void main(String[] args) {for (int i = 0; i < 999; i++) {int count = 0;//计算当前i 有几位数int tmp = i;while (tmp != 0) {count++;tmp = tmp / 10;}//count的值 是多少已经计算完成   i还是没有变的//计算i[tmp]的每一位tmp = i;int sum = 0;while (tmp != 0) {sum += Math.pow(tmp%10,count);tmp /= 10;}if(sum == i) {System.out.println(i);}}}
}

在这里插入图片描述
在这里插入图片描述

11. 猜数字游戏🙈

游戏规则:
系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 “猜小了”, 如果输入的数字比该随机数大, 提示 “猜大了” , 如果输入的数字和随机数相等, 则提示 “猜对了” 。

import java.util.Random;
import java.util.Scanner;
public class Test {//猜数字游戏public static void main(String[] args) {Random random = new Random();int randNum = random.nextInt(100);//[0,100)Scanner scanner = new Scanner(System.in);while (true){System.out.println("请输入你要猜的数字: ");int num = scanner.nextInt();if(num > randNum){System.out.println("猜大了!");}else if (num == randNum){System.out.println("猜对了!");break;}else{System.out.println("猜小了!");}}}
}

浅玩一下吧
在这里插入图片描述

本章到这里就结束啦,如果有哪里写的不好的地方,请指正。
如果觉得不错并且对你有帮助的话请给个三连支持一下吧!
Fighting!!!✊

相关文章:

【Java】循环语句练习

文章目录 1. 计算5的阶乘2. 计算 1! 2! 3! 4! 5!3. 数字9 出现的次数4. 判定素数5. 求1-100之间的素数6. 求2个整数的最大公约数7. 计算分数的值8. 模拟登陆9. 输出乘法口诀表10. 求出0&#xff5e;999之间的所有“水仙花数”并输出11. 猜数字游戏&#x1f648; 1. 计算5的…...

「Verilog学习笔记」非整数倍数据位宽转换24to128

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 要实现24bit数据至128bit数据的位宽转换&#xff0c;必须要用寄存器将先到达的数据进行缓存。24bit数据至128bit数据&#xff0c;相当于5个输入数据第6个输入数据的拼接成一…...

2023亚太地区数学建模C题思路模型代码论文

C题的参考思路: 1&#xff0c;问题1的思路: 确定研究问题的主要指标体系(新能源电车的售出数量、安全性指标、充电桩数目、电池续 航里程等)&#xff0c;收集指标的对应数据&#xff0c;检验数据是否服从正态性: 若服从正态分布: 0&#xff0c;可考虑优先采用“多元方差分析”模…...

苹果商城App上架指南在中发里查看

苹果商城App上架指引可以在app应用分发平台网站上查看。具体步骤如下&#xff1a; 登录苹果开发者网站。进入“Certificates, Identifiers & Profiles”选项。在页面左侧选择“App Store Connect”。点击“App Store Connect”页面顶部的“Developer Guide”。在左侧菜单中…...

Android 框架层AIDL 添加接口

文章目录 AIDL的原理构建AIDL的流程往冻结的AIDL中加接口 AIDL的原理 可以利用ALDL定义客户端与服务均认可的编程接口&#xff0c;以便二者使用进程间通信 (IPC) 进行相互通信。在 Android 中&#xff0c;一个进程通常无法访问另一个进程的内存。因此&#xff0c;为进行通信&a…...

ubuntu命令行下中文乱码怎么解决

大家好,今天来介绍ubuntu命令行中文乱码怎么解决(ubuntu中文文件名乱码)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧! ubuntu命令行下中文乱码怎么解决 我也呀见过这个问题 一. Ubuntu默认的中文字符编码 Ubuntu默认的中文字谈码符编码为zh_CN.UT…...

沈阳陪诊系统|陪诊软件开发功能

陪诊小程序的出现它可以帮助患者或家属解决就医过程中的各种问题。根据数据显示&#xff0c;2021年中国陪诊市场规模约为36.7亿元&#xff0c;预计到2025年将达到100亿元。同时&#xff0c;在医疗行业数字化转型的大背景下&#xff0c;陪诊微信小程序作为一种创新的医疗服务模式…...

Element-Plus 表格 el-table 如何支持分页多选

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…...

网站被流量攻击了,该怎么处理

几乎每个网站都面临被攻击或者入侵的风险&#xff0c;无论是简单的博客论坛、投资平台、小型的独立电商网站还是动态电子商务平台都有被攻击的情况出现,只是或大或小,或多或少罢了 为什么网站会被攻击&#xff1f;黑客如何来入侵这些网站&#xff1f;如何才能有效保护我的网站不…...

配置特定 IP 地址走指定网关

公司有两个日常上网用的路由器&#xff0c;分别接不同的两条网线&#xff0c;虽然都是电信的&#xff0c;但是一条偶尔会抽风&#xff0c;我的 VPS 会连不上&#xff0c;也就是挂在上面的 SS 无法使用。恰好这根线是公司接台式机的&#xff0c;也就是说平时上班偶尔会无法科学上…...

Linux的基本指令(四)

目录 前言 时间相关的指令 date指令 时间戳 日志 时间戳转化为具体的时间 cal指令 find指令&#xff08;十分重要&#xff09; grep指令&#xff08;行文本过滤工具&#xff09; 学前补充 什么是打包和压缩&#xff1f; 为什么要打包和压缩&#xff1f; 怎么打包和…...

vue+elementui如何实现在表格中点击按钮预览图片?

效果图如上&#xff1a; 使用el-image-viewer 重点 &#xff1a; 引入 import ElImageViewer from "element-ui/packages/image/src/image-viewer"; <template><div class"preview-table"><el-table border :data"tableData" …...

LLaMA 2:开源的预训练和微调语言模型推理引擎 | 开源日报 No.86

facebookresearch/llama Stars: 36.0k License: NOASSERTION LLaMA 2 是一个开源项目&#xff0c;用于加载 LLaMA 模型并进行推理。 该项目的主要功能是提供预训练和微调后的 LLaMA 语言模型的权重和起始代码。这些模型参数范围从 7B 到 70B 不等。 以下是该项目的关键特性…...

01-AI大模型智能客服 V0.1「上」

你好&#xff0c;我是悦创。 首发&#xff1a;https://mp.weixin.qq.com/s/6MTkpWZCEbFWOcUn0Vexvw V0.1 版本我将分为上中下三篇进行书写和发布&#xff0c;欢迎分享和我微信进讨论群&#xff1a;Jiabcdefh。 计划&#xff1a; 会迭代好几个版本&#xff0c;看阅读量和点赞…...

【23真题】罕见211!数一配英二!

今天分享的是23年合肥工业大学833的信号与系统数字信号处理试题及解析。合工大833考数一英二&#xff0c;这样的搭配还是很少见的。 本套试卷难度分析&#xff1a;22年合肥工业大学833考研真题&#xff0c;我也发布过&#xff0c;若有需要&#xff0c;戳这里自取!平均分为80和…...

Linux 项目自动化构建工具:make/makefile

什么是 make make 是一个命令&#xff0c;他会在源文件的当前目录下寻找 makefile 或者 Makefile 文件执行这个文件中的代码。 makefile 文件的编写 我们先来见见猪跑&#xff0c;看看 make 怎么用的&#xff1a; 下面是 makefile 文件的内容&#xff1a; 这是 test.c 中的…...

android trace文件的抓取与查看方法

本地手机抓取trace 解压android trace文件的抓取与查看方法 找到config.pbtx文件&#xff0c;连接手机push进去 # push config.pbtx &#xff0c;/data/local/tmp/为自定义push到的目录 adb push config.pbtx /data/local/tmp/ adb shell # 抓取trace&#xff0c; /data/loc…...

ffmpeg开发 环境配置

ffmpeg开发简图 1 下载ffmpeg开发包 https://ffmpeg.org/download.html 包含三个版本&#xff1a;Static、Shared以及Dev Static --- 包含3个应用程序&#xff1a;ffmpeg.exe , ffplay.exe , ffprobe.exe&#xff0c;体积都很大&#xff0c;相关的DLL已经被编译到exe里面去…...

C++STL——string类详解及其模拟实现

CSTL——string类 1. STL简介 STL全称standard template libaray&#xff0c;译为标准模板库 需要注意&#xff0c;STL不是C的标准库&#xff0c;而是C标准库的重要组成部分STL是一个包含众多数据结构和算法的软件框架 下面展示STL的六大组件&#xff1a; 本章&#xff0c;我…...

使用Three.js创建导航立方体

什么是导航立方体? 导航立方体是一个交互式的3D控件,它允许用户通过点击和拖动立方体的各个面来改变3D视图的方向。这是一种非常直观的方式,让用户能够轻松地在3D空间中导航。 创建导航立方体 下面是一个基本的步骤,说明如何使用Three.js创建一个导航立方体: // 创建场景…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...