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

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

如何选择适合孤独症兄妹的学校?

在探索适合孤独症儿童教育的道路上,每一位家长都面临着前所未有的挑战与抉择。当这份责任落在拥有孤独症兄妹的家庭肩上时,选择一所能够同时满足两个孩子特殊需求的学校,更显得尤为关键。本文将探讨如何为这样的家庭做出明智的选择,并介绍星贝育园自闭症儿童寄宿制学校作为一个值得考虑的选项。 理解孤独症儿童的独特性 孤独症,这一复杂的神经发育障碍,影响着儿童的社交互动、沟通能力以及行为模式。对于拥有孤独症兄

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory