java基础练习题

基础练习题
1
朋友聚会的时候可能会玩一个游戏:逢七过。
规则是:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数时都要说:过。
为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印出1-100之间的满足逢七必过规则的数据。
这样,大家将来在玩游戏的时候,就知道哪些数据要说:过。
产考答案

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.println("过,拐");
        }else{
            System.out.println(i);
        }
    }
}

2
需求:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
假如兔子都不死,问第二十个月的兔子对数为多少?
产考答案
(1)

public static void main(String[] args) {
   
    int []arr=new int[20];
 
    arr[0]=1;
    arr[1]=1;

    for (int i = 2; i < arr.length; i++) {
        arr[i]=arr[i-1]+arr[i-2];
    }
    System.out.println("第二十月的兔子对数是"+arr[19]);
}

(2)
第二种思路:

public static void main(String[] args) {
    int month1 = 1;
    int month2 = 0;
    int chengnian = 0;

    int month = 1;

    while (true) {
        System.out.print("第" + month + "月: ");


        if (month > 2) {
            chengnian = month2 + chengnian;
        }
        if (month > 1) {
            month2 = month1;
            month1 = chengnian;
        }


        int sum = month1 + month2 + chengnian;
        System.out.println(sum);

        if (month == 20) {
            break;
        }
        month++;
    }
}

3:
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

参考答案

public static void main(String[] args) {

        for (int i=0;i<=33;i++){

            for (int x=0;x<=20;x++){
      
                int z=100-i-x;

                if (z%3==0&&x*5+i*3+z/3==100){
                   
                    System.out.println("公鸡:"+x+"只, "+"母鸡:"+i+"只, "+"小鸡"+z+"只");
                }
            }
        }
    }

4:
需求:
有这样的一个数组,元素是{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和,
要求是:求和的元素个位和十位都不能是7,并且只能是偶数

参考答案

public static void main(String[] args) {

    int[]arr={68,27,95,88,171,996,51,210};
    
    int sum=0;
    for (int i = 0; i < arr.length; i++) {
        if (arr[i]%10!=7&&arr[i]/10%10!=7&&arr[i]%2==0){
            sum+=arr[i];
        }
    }
    System.out.println(sum);

}

5
需求:
已知一个数组 arr = {19, 28, 37, 46, 50}; 用程序实现把数组中的元素值交换,
交换后的数组 arr = {50, 46, 37, 28, 19}; 并在控制台输出交换后的数组元素。

参考答案

public static void main(String[] args) {
    
    int [] arr ={19, 28, 37, 46, 50};
    Zhuan(arr);
  
    bianLi(arr);
}

public static void fanZhuan(int[] arr) {
    for (int s=0,e=arr.length-1;s<=e;s++,e--) {
   
        int c=arr[s];
        arr[s]=arr[e];
        arr[e]=c;
    }
}

public static void bianLi(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
需求:
在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。
参考答案

public static void main(String[] args) {
   
    double[] arr = new double[6];
   
    Scanner sc = new Scanner(System.in);
    
    for (int i = 0; i < arr.length; i++) {
        System.out.println("请输入第" + (i + 1) + "个评委的分数");
        arr[i] = sc.nextInt();
    }
    double max = getMax(arr);
    double min = getMin(arr);
    double sum = getSum(arr);
   
    double mean = (sum - max - min) / (arr.length - 2);
    System.out.println("选手的平均分是:" + mean);

}


public static double getMax(double[] arr) {
    double max = arr[0];
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] > max) {
            max = arr[i];
        }
    }
    return max;
}


public static double getMin(double[] arr) {
    double min = arr[0];
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] < min) {
            min = arr[i];
        }
    }
    return min;
}


public static double getSum(double[] arr) {
    double sum = 0;
    for (int i = 0; i < arr.length; i++) {
        sum += arr[i];
    }
    return sum;
}

7
需求:自定义一个方法求出所有水仙花并返回
因为水仙花是多个所以返回时要用数组接收

参考答案

public static int[] getSXh() {
        int count=0;
    for (int i=100;i<1000;i++){
   
        int ge=i%10;
        int shi=i/10%10;
        int bai=i/100;

        if (ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
    
            count++;
        }
    }

    int[]arr=new int[count];
 
    for (int i=100;i<1000;i++){
        int ge=i%10;
        int shi=i/10%10;
        int bai=i/100;
        if (ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
          
            arr[--count]=i;
        }
    }

    return arr;
}

public static void main(String[] args) {

    int[]arr=getSXh();
    
    for (int i = 0; i < arr.length; i++) {
        System.out.print(arr[i]+"  ");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值