0. 打印水仙花数
水仙花数的核心思想就是数值拆分,结合循环一起使用。
需求:打印所有的水仙花数 什么是水仙花数:水仙花数是一个三位数,每一位数字的立方和等于该数本身 举例:153=1*1*1+5*5*5+3*3*3 分析思路: 1)使用for循环穷举所有的三位数 2)获取每一个三位数的个位、十位、和百位 3)判断这个三位数数是否满足水仙花数的规则 这个数=个位*个位*个位+十位*十位*十位+百位*百位*百位 4)把满足条件的三位数打印数出来
public class Demo1{
public static void main(String[] args){
//遍历所有的三位数
for(int i=100; i<=999; i++){
//求个位、十位、百位
int ge = i%10;
int shi = i/10%10;
int bai = i/100%10;
//判断是否满足水仙花数的条件
if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
System.out.println(i);
}
}
}
}
1. 随机点名器
需求:定义一个数组,存储一些学生的姓名,从数组中随机获取一个姓名。 思路:每次看到随机数,你就应该条件反射的想到随机数的三个步骤 第一步:导包,注意只能写在class的上面 import java.util.Random; 第二步:创建Random对象(对象是可以帮你做事情的东西) Random r = new Random(); 第三步:调用nextInt(范围)方法,产生随机数 int num = r.nextInt(n); //范围:[0,n)
//1.定义一个数组,存储一些学生的姓名
String[] array = {"张三","李四","王五","赵六","田七"};
//2.从数组中产生一个随机的索引
Random r=new Random();
int index = r.nextInt(array.length);
//3.通过索引获取元素
String name = array[index];
System.out.println("恭喜你选中了:"+name);
2. 键盘录入
键盘录入的核心就是三个步骤
之前没有学习类和对象的概念,所以让大家把代码背下来 但是我们学过类与对象的概念之后;代码可以简单解释一下了 Scanner使用解释: 第一步导包: 导包的意思是告诉JVM(Java虚拟机),去哪一个文件夹下中去找Scanner类 第二步创建Scanner对象: 创建Scanner对象其实就是在执行Scanner构造方法 第三步键盘录入: 调用nextInt()方法完成键盘录入
//导包(由于这个类时别人的,我们使用时要先导入进来)
import java.util.Scanner;
public class ScannerTest{
public static void main(String[] args){
//创建Scanner对象(对象是可以帮你做事情的东西)
Scanner sc = new Scanner(System.in);
//调用芳方法完成键盘录入
int num = sc.nextInt();
System.out.println(num);
}
}
使用键盘录入,往数组中的元素赋值
public class ArrayTest1 {
public static void main(String[] args) {
//键盘录入5个整数,存储到数组中
int[] array = new int[5];
Scanner sc = new Scanner(System.in);
for(int i=0; i<array.length; i++){
//键盘录入一个整数
int num = sc.nextInt();
//把整数赋值给数组的元素
array[i] = num;
}
}
}
3. 数组元素求和
数组元素求和,核心思想就是要有一个求和变量,然后累加。具体步骤如下
1.定义求和变量sum 2.遍历所有需要求和的数据 3.把数据和sum累加
public class ArrayTest2 {
public static void main(String[] args) {
int[] array = {10,20,30,40,50,60}
//求和变量
int sum=0;
//数组的长度:array.length
for (int i = 0; i <array.length; i++) {
//让数组的元素和sum累加
sum+=array[i];
}
System.out.println("所有元素的和为:"+sum);
}
}
将键盘录入数据存储在数组中,再求数组中元素的和
public class ArrayTest3 {
public static void main(String[] args) {
//键盘录入5个整数,存储到数组中
int[] array = new int[5];
Scanner sc = new Scanner(System.in);
for(int i=0; i<array.length; i++){
//键盘录入一个整数
int num = sc.nextInt();
//把整数赋值给数组的元素
array[i] = num;
}
//求和变量
int sum=0;
//数组的长度:array.length
for (int i = 0; i <array.length; i++) {
//让数组的元素和sum累加
sum+=array[i];
}
System.out.println("所有元素的和为:"+sum);
}
}
4. 普通查找
需求:查找数组中元素第一次出现的索引 案例思路: 1.确定需要查找的元素 2.遍历数组的元素和要查找的元素进行比较 如果相等,获取索引,break跳出循环 3.在循环外边定义一个index索引,如果找到了元素index记录索引;否则index等于-1
int[] array = {5,7,5,8,9,10,3,4,2,1};
//键盘录入一个整除
Scanner sc=new Scanner(System.in);
System.out.pritnln("键盘录入一个整数:");
int num=sc.nextInt();
//遍历数组获取每一个元素
int index=-1;
for(int i=0;i<array.length;i++){
if(array[i]==num){
index=i;
break;
}
}
System.out.println(num+"的索引为:"+index);
5. 数组逆序
数组元素逆序的核心思维就是两个元素互换位置
int[] arr = {1,2,3,4,5,6,6,7,9};
//把1索引和3索引的元素互换
int temp = arr[1];
arr[1] = arr[3];
arr[3] = temp;
需求:把数组中的元素逆序,如{1,2,3,4,5},逆序之后{5,4,3,2,1} 思路: 1.初始化一个开始索引start,和结束索引end 2.让start和end位置的元素互换,每次互换完成之后start++,end-- 3.直到start>end解结束循环
int[] array={1,2,3,4,5};
//对数组中的元素逆序
for(int start=0,end= array.length-1; start<=end; start++,end--){
//把array[start]和array[end]进行互换
int temp=array[start];
array[start]=array[end];
array[end]=temp;
}
//打印输出数组中的元素
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
6. 数组元素求最值
求最值的思路就是带打擂台(你先要想清楚打擂台的规则,要尽可能的细致)
求最值的思路: 1.假设数组中的0索引元素为最大值max(擂主) 2.让其他的元素和max比较,把较大的值赋值给max(打赢的站在擂台上) 3.最终max就是最大值(最后站在擂台上的就是最大值)
public class ArrayTest3 {
public static void main(String[] args) {
int[] array={1,3,46,8,2,5,9,7};
//1.假设数组中的0索引元素为最大值(擂主)
int max = array[0];
//2.让其他的元素和max比较,把较大的值赋值给max(打赢的站在擂台上)
for (int i = 1; i < array.length; i++) {
if(array[i] > max){
max = array[i]; //打赢的站在擂台上
}
}
//3.最终max就是最大值(最后站在擂台上的就是最大值)
System.out.println("最大值为:"+max);
}
}
7. 数组元素查找
需求:查找数组中元素第一次出现的索引 思路: 1.确定需要查找的元素 2.遍历数组的元素和要查找的元素进行比较 如果相等,获取索引,break跳出循环 3.在循环外边定义一个index索引,如果找到了元素index记录索引;否则index等于-1
public class ArrayTest4 {
public static void main(String[] args) {
int[] array={10,20,30,40,15,60,15,80};
//1.确定需要查找的元素
int key=15;
int index=-1; //记录查找的索引,规定-1表示没有找到元素
//2.遍历数组中的元素和key进行比较
for (int i = 0; i < array.length; i++) {
if(array[i]==key){
index=i;
break;
}
}
//判断index的值,是否等于-1
if(index==-1){
System.out.println("对不起,没有这个元素");
}else{
System.out.println(key+"元素在数组中的索引为:"+index);
}
}
}