Java 案例六 奇数求和 水仙花 打印乘法口诀 打印数组 逆序输出数组 选择排序 冒泡排序 折半查找

本文主要是介绍Java 案例六 奇数求和 水仙花 打印乘法口诀 打印数组 逆序输出数组 选择排序 冒泡排序 折半查找,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 1.奇数求和

/*编写程序求1+3+5+...+99的和值有一个数据从0变到100 循环 int i = 0; ,+100 ++从0-100,范围内找到奇数 数%2==1 奇数所有的奇数求和需要变量,保存奇数的求和实现步骤:1.程序中可以使用的数据,预先定义好变量需要奇数和2.利用循环,让变量从0变化到1003.判断变量的变化情况是不是奇数4.如果是奇数和预先定义好的变量相加*/
public class Test{public static void main(String[] args){//求出100内的奇数和,每一个奇数之间,前一个比后一个小2//方法1int sum = 0;for(int i = 1; i < 100 ; i+=2){sum += i;}System.out.println(sum);//方法2//定义变量,保存求和的值sum = 0;//for循环,循环中的变量,0-100for(int i = 0 ;i < 100;i++){if(i%2==1){//对循环的变量,进行奇数的判断,i%2==1sum += i;}}System.out.println(sum);}
}

运行结果:

2.水仙花 

/*要求:计算水仙花数三位数 100-999 个位数的立方+十位数的立方+百位数的立方 ==自己本身153 = 1*1*1 +5*5*5 + 3*3*3已知三位数 123 获取出每个数位 利用除法取模运算实现步骤:1.定义变量才存储 三个数位上的整数2.利用循环,循环中的变量,从100变化到9993.循环中得到三位数,利用算法,拆解成三个单独的数位4.将三个数位立方的求和计算,计算后的求和 和它自己比较判断如果相同,就是水仙花*/public class LoopTest_1{public static void main(String[] args){//定义三个变量int ge = 0,shi = 0,bai = 0;int sum = 0;//循环,循环变量从100-999for(int i = 100 ; i <= 999 ; i++){//获取百威ge = i%10;//获取各位shi = (i/10)%10;//获取个位bai = i/100;//对三个数位进行立方求和//System.out.println(ge+" "+shi+" "+bai);sum =ge*ge*ge+shi*shi*shi+bai*bai*bai;//System.out.println(sum);if(i == sum){System.out.println("满足条件的数:"+i);}}}
}

运行结果:

3.打印乘法口诀 

/*打印乘法口诀1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9乘法口诀需要利用双循环for(int i = 1;i <=9 ;i++)这是控制行数  9行for(int j = 1; j <=i ;j++)这是控制每行的个数 逐行增加*/public class LoopTest_3{public static void main(String[] args){for(int i = 1;i < 10; i ++){for(int j = 1; j <= i; j++){System.out.print(i+"*"+j+"="+i*j+"	");}System.out.println();}}
}

运行结果:

4.利用方法打印数组

/*定义方法,实现数组的遍历遍历中输出结果 [11,33, 56,77,89]实现步骤:1.先定义一个方法实现数组的遍历2.先打印[3.遍历数组输出数组的元素和逗号判断是否遍历到了数组的最后一个元素,如果是输出]中括号
*/public class ArrayMethodTest{public static void main(String[] args){//定义一个数组int[] arr = {11,33,56,77,89};printArray(arr);}/*定义方法,实现功能返回值:void方法参数:数组*/public static void printArray(int[] arr){//先输出一半括号System.out.print("{");//遍历数组for(int i = 0 ;i < arr.length ; i++){//如果是最后一个元素就输出元素和另外一半括号if(i == arr.length -1){System.out.print(arr[i]+"}");}else System.out.print(arr[i]+",");}System.out.println();}
}

运行结果:

5.逆序输出数组(不等于 反向输出数组)

/*素组的逆序:数组中的元素,进行位置上的交换逆序 不等于 反向遍历就是数组中最远的两个索引,进行位置交换,实现数组的逆序使用的是数组的指针思想,就是变量,思想可以随时变换索引反转 reverse实现步骤:1.定义方法,实现数组的逆序2.遍历数组实现数组的最远索引换位置使用临时的第三方变量
*/
public class ArrayMethodTest_1{public static void main(String[] args){int [] arr = {1,2,3,4,8,7};printArray(arr);reverse(arr);printArray(arr);}/*定义方法,实现数组的逆序返回值:没有返回值参数:数组就是参数*/public static void reverse(int[] arr){//利用循环,实现数组遍历,遍历过程中,最远端换位//for的第一项,定义2个变量for(int min = 0, max = arr.length -1; min < max ; min++,max--){//对数组中的元素进行位置交换//min索引和max索引的元素交换int temp = arr[min];//max索引上的元素赋值给min索引arr[min] = arr[max];//临时变量,保存的数据,赋值到max索引上arr[max] = temp ;}}/*定义方法,实现功能返回值:void方法参数:数组*/public static void printArray(int[] arr){//先输出一半括号System.out.print("{");//遍历数组for(int i = 0 ;i < arr.length ; i++){//如果是最后一个元素就输出元素和另外一半括号if(i == arr.length -1){System.out.print(arr[i]+"}");}else System.out.print(arr[i]+",");}System.out.println();}
}

运行结果:

6.选择排序(素组的每个元素进行比较)

/*数组的排序:一般都是升序排序,元素,小到大的排序两种排序的方式选择排序:素组的每个元素进行比较冒泡排序:素组中相邻元素进行比较规则:比较大小,位置交换
*/public class ArrayMethodTest_2{public static void main(String[] args){int [] arr = {9,2,6,4,8,7};printArray(arr);selectSort(arr);printArray(arr);}/*定义方法,实现数组的选择排序返回值;没有参数:数组实现步骤:1.嵌套循环实现排序外循环:控制的是一共比较了多少次内循环:控制的是每次比较多少个元素2判断元素的大小值小值, 存储到小的索引中*/public static void selectSort(int[] arr){for(int i = 0;i < arr.length -1; i++){//内循环,是每次豆子减少,修改变量的定义for(int j = i+1 ; j < arr.length ;j++){//数组的元素进行判断if(arr[i] > arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}}/*定义方法,实现功能返回值:void方法参数:数组*/public static void printArray(int[] arr){//先输出一半括号System.out.print("{");//遍历数组for(int i = 0 ;i < arr.length ; i++){//如果是最后一个元素就输出元素和另外一半括号if(i == arr.length -1){System.out.print(arr[i]+"}");}else System.out.print(arr[i]+",");}System.out.println();}
}

输出的结果:

7.冒泡排序和折半查找

/*数组的查找功能:在一个数组中,找一个元素,是否存在于数组中,如果存在,就返回索引普通查询:找到元素在数组中出现的索引,如果没有这个元素,结果就是负
*/public class ArrayMethodTest_3{public static void main(String[] args){int [] arr ={8,5,7,2,9,3,4};printArray(arr);//调用冒泡排序bubbleSort(arr);printArray(arr);int index =binarySearch(arr,9);System.out.println(index);}/*定义方法,实现折半查找返回值:索引参数:数组被查找的元素实现步骤:1.需要的变量三个,定义三个变量2.进行循环折半,可以折半的条件 min<max3让被找元素和中间索引元素进行比较元素 > 中间索引 小指针 =中间 +1元素 < 中间索引 大指针 =中间 -1元素 ==中间索引 找到了,借宿了,返回中间索引4.循环结束,无法折半元素没有找到,返回-1*/public static int binarySearch(int[] arr,int key){//定义三个指针变量int min = 0;int max = arr.length-1;int mid = 0;while(min <=max){//公式计算中间索引mid = (min + max)/2;//让被找元素和中间索引元素进行比较if(key > arr[mid]){min = mid +1;} else if(key < arr[mid]){max  = mid -1;} else {return mid;}}return -1;}/*定义方法,实现数组的冒泡排序返回值:没有参数:数组实现步骤:*/public static void bubbleSort(int[] arr){for(int i = 0 ; i < arr.length-1 ;i++){for(int j = 0;j < arr.length-i-1; j++){if(arr[j] > arr[j+1]){int temp = arr[j+1];arr[j+1] = arr[j];arr[j] = temp;}}}}/*定义方法,实现功能返回值:void方法参数:数组*/public static void printArray(int[] arr){//先输出一半括号System.out.print("{");//遍历数组for(int i = 0 ;i < arr.length ; i++){//如果是最后一个元素就输出元素和另外一半括号if(i == arr.length -1){System.out.print(arr[i]+"}");}else System.out.print(arr[i]+",");}System.out.println();}
}

输出结果是:

这篇关于Java 案例六 奇数求和 水仙花 打印乘法口诀 打印数组 逆序输出数组 选择排序 冒泡排序 折半查找的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2