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集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。