Java入门基础练习

练习题

  • 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
    假如兔子都不死,问第二十个月的兔子对数为多少?
/*
   
        1,1,2,3,5,8,13.....
        0 1 2 3 4 5 6
*/
public class Test {
    public static void main(String[] args) {
        /*int a = 1;
        int b = 1;
        int sun = a+ b;
        */
        //用数组来存储兔子对数
        int[] arr = new int[20];
        //第一个月和第二个月兔子对数
        arr[0]=1;
        arr[1]=1;
        //
        for (int i = 2; i < arr.length; i++) {
            arr[i]=arr[i-2]+arr[i-1];//兔子的增长规律
        }
        System.out.println("第十九个月不死神兔的对数为:"+arr[19]+" 对");
    }
}
  • List item
    我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。

     百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
    
/*
*/
public class Test {
    public static void main(String[] args) {
        //x 为公鸡,y为母鸡,z为小鸡
        for(int x =0 ;x < 20;x++){
            for( int y = 0;y<33;y++){
                int z = 100 -x -y;
                if(z%3==0 && 5*x+3*y+z/3==100){
                    System.out.println("公鸡,母鸡,小鸡的数量各是:"+x+","+y+","+z);
                }
            }
        }
    }
}

  • 朋友聚会的时候可能会玩一个游戏:逢七过。
    规则是:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数时都要说:过。
    为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印出1-100之间的满足逢七必过规则的数据。
    这样,大家将来在玩游戏的时候,就知道哪些数据要说:过。
/*    
*/
public class Test_01 {
    public static void main(String[] args) {
        for (int i = 1; i < 100; i++) {
            if (i % 10 == 7 || i / 10 % 10 == 7 || i % 7 == 0) {
                System.out.print("过 ");
            }else{
                System.out.print(i+" ");
            }
        }
    }
}
  • 在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
    选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。
package 基础练习.a.评委打分;

/*
        
*/

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int[] arr = new int[6];
        for (int i = 0; i < arr.length; i++) {
            System.out.println("请输入第" + (i + 1) + "位评委的打分");
            arr[i] = sc.nextInt();
        }

        //调用对应方法求得去掉最值后的平均分
        int max = getMax(arr);
        int min = getMin(arr);
        int sum = getSum(arr);
        int avg = (sum - max - min) / (arr.length - 2);
        System.out.println(avg);
    }

    //定义取得最大值的方法
    public static int getMax(int[] arr) {
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        return max;
    }

    //定义取得最小值方法
    public static int getMin(int[] arr) {
        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > min) {
                min = arr[i];
            }
        }
        return min;
    }

    //定义求和方法
    public static int getSum(int[] arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }
}

  • 定义一个10个数的数组,元素为1-100的随机数
    在定义一个数组,要求把上面的数组放到新数组中
    奇数在左边,偶数在右边
import java.util.Random;

/*
    

 */
public class S002 {
    public static void main(String[] args) {
        Random ra = new Random();
        int[] arr = new int[10];

        for (int i = 0; i < arr.length; i++) {
            arr[i] = ra.nextInt(100) + 1;

        }
        int[] arr1 = new int[arr.length ];
        int start = 0;
        int end = arr.length-1;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 2 != 0) {
                arr1[start] = arr[i];
                start++;
            } else {
                arr1[end] = arr[i];
                end--;
            }
        }
        for (int i = 0; i < arr1.length; i++) {
            System.out.print(arr1[i]+" ");
        }

    }
}

  • 数组{15,20,339,33,42,453,5,94,59,62} 最大数与第一位更换位置,最小数与最后一位更换位置,遍历效果
/**/

public class S003 {
    public static void main(String[] args) {

        int[] arr = new int[]{15, 20, 339, 33, 42, 453, 5, 94, 59, 62};
        //定义最值及对应索引初始化
        int max = arr[0];
        int min = arr[0];
        int indexMax = 0;
        int indexMin = 0;

        for (int i = 0; i < arr.length; i++) {
            //获取最值及对应索引值
            if (max < arr[i]) {
                max = arr[i];
                indexMax = i;
            }
            if (min > arr[i]) {
                min = arr[i];
                indexMin = i;
            }
        }
        //元素更换
        int t1 = arr[indexMax];
        arr[indexMax] = arr[0];
        arr[0] = t1;
        int t2 = arr[arr.length - 1];
        arr[arr.length - 1] = arr[indexMin];
        arr[indexMin] = t2;
        //遍历效果
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}
  • 定义一个长度为是数组,元素为1-100之间的随机数,求出数组中元素大于数组中的元素平均值的值有多少个
/**/


import java.util.Random;
public class S004 {
    public static void main(String[] args) {
        Random ra = new Random();                        //创建随机数对象
        int[] arr = new int[10];                         //定义10个数的数组
        double sum = 0;                                  //定义求和
        int count = 0;                                   //定义计数器初始化,后续统计
        for (int i = 0; i < arr.length; i++) {
            arr[i] = ra.nextInt(100) + 1;         //获取元素范围是1-100
            sum += arr[i];                               //数组元素求和
        }
        for (int i = 0; i < arr.length; i++) {           //遍历数组
            if (arr[i] > (sum / 10)) {                   //判断元素与平均值的大小
                count++;
            }
            System.out.print(arr[i] + " ");
        }
        System.out.println();
        System.out.println("平均数为:"+(sum/10));//打印个数
        System.out.println("大于平均值的元素有" + count + "个");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值