【JAVA基础—刷题(3)】循环

📃个人主页:个人主页

🔥系列专栏:JAVASE基础

目录

1.数列求和

2. 统计输入正数个数

3.求最小公倍数

4.小球走过路程计算

5. 求平均数

6.判断质数

7.计算整数位数


1.数列求和

描述

有数列为:9,99,999,...,9999999999。要求使用程序计算此数列的和,并在控制台输出结果。(请尝试使用循环的方式生成这个数列并同时在循环中求和)

输入描述:

输出描述:

将该数列的和直接输出

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

        //write your code here........
       long sum=0;
        long n=0;
        for (int i = 0; i < 10; i++) {

           n=n*10+9;
            sum+=n;
        }

        System.out.println(sum);
    }
}

2. 统计输入正数个数

描述

控制台输入整数,请设计一个死循环,当用户输入非正数时停止输入。请给出用户输入的正整数个数(默认输入个数不超过2147483647)

输入描述:

若干整数,整数之间用空格隔开

输出描述:

控制台输入的正整数个数

示例1

输入:1 2 3 4 5 6 7 0

输出:7

    public static void main(String[] args) {
        int count = 0;
        Scanner scanner = new Scanner(System.in);

        //write your code here......

        while (true){
            if (scanner.nextInt()>0) count++;
            else break;

        }

        System.out.println(count);

    }

3.求最小公倍数

描述

编写一个方法,该方法的返回值是两个不大于100的正整数的最小公倍数

输入描述:

两个int类型变量作为方法的参数

输出描述:

int类型的变量,值为两个数的最小公倍数

示例1

输入:3 7

输出:21

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
  
        while (in.hasNextInt()) { 
            int a = in.nextInt();
            int b = in.nextInt();
            int max=Math.max(a,b);
            for (; max <a*b; max++) {
                if(max%b==0&&max%a==0){
                    System.out.println(max);
                    break;
                }
            }
            if (max==a*b)
            System.out.println(a*b);


        }
    }

4.小球走过路程计算

描述

一球从h米高度自由落下,每次落地后反弹回原高度的一半再落下,求它在第n次落地时共经过了多少米?第n次反弹多高?

输入描述:

输入小球的初始高度和落地的次数(先输入小球初始高度再输入反弹次数)

输出描述:

输出小球反弹的高度和经过的距离(先输出反弹的高度再输出经过的距离,中间用空格隔开)

示例1

输入:100 3

输出:12.500 250.000

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);


        int height = in.nextInt();
        int number = in.nextInt();
        float h = height;
        float sum = height;

        for (; number > 0; number--) {
            h = h / 2;
            if (number > 1) {
                sum += h * 2;
            }

        }
        System.out.print(String.format("%.3f", h)+" "+String.format("%.3f", sum));


    }

5. 求平均数

描述

键盘输入任意多个10000以内正整数(负数代表结束),求出它们的平均数,

输入描述:

任意多个正整数

输出描述:

它们的平均数(平均数为double类型,保留两位小数)

示例1

输入:12 23 32 43 -1

输出:27.50

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


    }

6.判断质数

描述

请补全预设代码中判断质数的方法。

(质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数))

输入描述:

一个大于1的整数

输出描述:

true/false

示例1

输入:2

输出:true

示例2

输入:9

输出:false

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        //质数又称素数。一个大于1的自然数,除了1和它自身外,
        //不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。
        int number = in.nextInt();
        for (int i = 2; i < 6; i++) {
            if (number%i==0&&number!=2&&number!=3){
                System.out.println("false");
                return;
            }
        }
        System.out.println("true");

    }

7.计算整数位数

描述

输入一个整数,计算它的位数。如果输入的整数不大于0则输出这个数

输入描述:

一个整数

输出描述:

整数的位数

示例1

输入:9999

输出:4

示例2

输入:0

输出:0

示例3

输入:-1

输出:-1

 代码:

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int number = in.nextInt();

        if (number>0){
            int i = 1;
            for (; number>10 ; i++) {
                number=number/10;
            }
            System.out.println(i);


        }
        else System.out.println(number);


    }

 利用API:

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int number = in.nextInt();


        if (number>0){
            String s = String.valueOf(number);
            System.out.println(s.length());

        }
        else System.out.println(number);

    }

  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱编程的小白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值