Java SE基础经典练习题

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); 
        }
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值