Java算法1

循环

JAVA12 小球走过路程计算

描述
一球从h米高度自由落下,每次落地后反弹回原高度的一半再落下,求它在第n次落地时共经过了多少米?第n次反弹多高?
输入描述:
输入小球的初始高度和落地的次数(先输入小球初始高度再输入反弹次数)
输出描述:
输出小球反弹的高度和经过的距离(先输出反弹的高度再输出经过的距离,中间用空格隔开)
示例1
输入:
100 3
输出:
12.500 250.000
备注:
结果保留三位小数,保留方式已经写在预设方法备注中

ublic static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        float h=scanner.nextFloat();
        int n =scanner.nextInt();
 double sum=0.00;
        for (int i = 1; i <=n ; i++) {
            if (i==1){
                sum+=h;
                h=h/2;
            }else{
                sum+=2*h;
                h=h/2;
            }
        }
        System.out.println(String.format("%.3f", h)+" "+String.format("%.3f", sum));
    }
    }

JAVA13 求平均数

描述
键盘输入任意多个10000以内正整数(负数代表结束),求出它们的平均数,
输入描述:
任意多个正整数
输出描述:
它们的平均数(平均数为double类型,保留两位小数)
示例1
输入:
12 23 32 43 -1
输出:
27.50
备注:
输出格式与保留两位小数的方法已经写在预设代码注解中

   public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);    
        int num;
        double sum=0.00;
        int a=0;
        while (true){
            num=scan.nextInt();
            if (num<0) 
                break;  
                a++;
                sum += num;
        }
scan.close();
        if (a>0){
            double avg =(double) sum / a;
            System.out.println(String.format("%.2f",avg));  
    }}
}

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int n=0,i=0;
    double s=0;
    while((n=scan.nextInt())>=0){
        s=s+n;
        i++;
    }
    System.out.println(String.format("%.2f",s/i));
}

JAVA14 判断质数

描述
请补全预设代码中判断质数的方法。
输入描述:
一个大于1的整数
输出描述:
true/false
示例1
输入:
2
输出:
true
示例2
输入:
9
输出:
false

  public static void main(String[] args) {
        Main main = new Main();
        Scanner scan = new Scanner(System.in);
        int number = scan.nextInt();
        System.out.println(main.isPrimeNumber(number));
    }

    public Boolean isPrimeNumber(int number) {

  if(number==2||number==3){
        return true;
    }
   for(int i=3;i<number;i++){
       if(number%i==0){
           return false;    
       }
   }
    return true;
}
}

JAVA15 计算整数位数

描述
输入一个整数,计算它的位数。如果输入的整数不大于0则输出这个数
输入描述:
一个整数
输出描述:
整数的位数
示例1
输入:
9999
输出:
4
示例2
输入:
0
输出:
0
示例3
输入:
-1
输出:
-1

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();
        scan.close();
 if(num<=0){
            System.out.println(num);
        }
        int c=0;
        while (num>0){

            c++;
            num/=10;
        }
        System.out.println(c);

    }
}

数组

JAVA16 数组遍历

描述
将用户输入的六个数字填入数组并找出数组中最大值和最小值
输入描述:
随机输入的6个整数
输出描述:
输出数组中的最大值,最小值(最大值最小值之间用空格隔开。若有多个最大值或最小值,输出一次即可,如样例2所示)
示例1
输入:
1 3 5 2 4 6
输出:
6 1
示例2
输入:
1 1 2 3 4 4
输出:
4 1

 public static void main(String[] args) {
        int[] ary = new int[6];
        int max;
        int min;
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i <ary.length ; i++) {
            ary[i]=scanner.nextInt();
        }
        max = ary[0];
        min = ary[0];
        int length = ary.length;
        for(int i=1;i<length;i++){
            if(ary[i] > max){
                max = ary[i];
            }
            if(ary[i] < min){
                min = ary[i];
            }
        }
        System.out.println(max+" "+min);
    }
}
 public static void main(String[] args) {
        int[] ary = new int[6];
        int max;
        int min;
        Scanner scanner = new Scanner(System.in);
     	for (int i = 0; i <ary.length ; i++) {
            ary[i]=scanner.nextInt();
        }
    max=ary[1];//把数组的第一个数作为初始化的数字
    min=ary[1];
    for(int i=0;i<ary.length;i++){
        max=Math.max(ary[i],max);
        min=Math.min(ary[i],min);
    }
    System.out.println(max+" "+min);
}
}

JAVA17 数组倒转

描述
输入6个整数,先将其输出然后再将数组倒转,再次输出数组
输入描述:
用户随机输入的6个int类型变量
输出描述:
先输出用户输入顺序的数组(这一步预设代码已给出)
再输出反转后的数组(输出格式为Arrays.toString(arr),参考预设代码中的输出格式)
示例1
输入:
52 10 37 40 60 83
输出:
[52, 10, 37, 40, 60, 83]
[83, 60, 40, 37, 10, 52]

一种解法

 public static void main(String[] args) {
        int[] arr = new int[6];
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < arr.length; i++) {
            arr[i] = scanner.nextInt();
        }
        System.out.println(Arrays.toString(arr));
  //write your code here......
    int length = arr.length;//数组的长度
    int len = length/2;//数组的中间索引下标
    int temp = 0;
    //遍历数组的前半部分,将前半部分与后半部分互换
    for(int i=0;i<len;i++){//数组倒置
        temp = arr[i];
        arr[i] = arr[length-1-i];
        arr[length-1-i] = temp;
    }
    System.out.println(Arrays.toString(arr));
}
}
public static void main(String[] args) {
        int[] arr = new int[6];
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < arr.length; i++) {
            arr[i] = scanner.nextInt();
        }
        System.out.println(Arrays.toString(arr));
           for(int i=0; i < arr.length/2; i++){//数组头尾互换数字,所以到中间就行
               int a=arr.length-i-1;//数组尾巴的地址
               int j=arr[i];//将数组前面的数组暂时存在变量J中
               arr[i]=arr[a];//开始互换
               arr[a]=j;
           }
           System.out.println(Arrays.toString(arr));
       }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值