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

简介: 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);
    }
相关文章
|
1月前
|
Java 程序员 API
Java循环操作哪个快?
本文探讨了Java中stream API与传统for循环在性能上的对比,通过多个示例分析了不同场景下两者的优劣。作者指出,尽管stream API使代码更简洁,但不当使用会降低可读性和性能,特别是在处理大数据量时。实验结果显示,在多数情况下,普通for循环的性能优于stream API,尤其是在单次操作耗时较短但需多次执行的场景中。文章建议开发者在设计初期就考虑全局流程,避免重复使用stream流,以提升代码质量和性能。
Java循环操作哪个快?
|
1月前
|
Java 程序员 API
Java循环操作哪个快?
本文探讨了Java中Stream API与传统for循环的性能对比及适用场景。作者通过实际案例分析,指出在某些情况下,过度使用Stream API会导致代码可读性和维护性下降。测试结果显示,在数据量较小的情况下,普通for循环的性能优于Stream API,尤其是在涉及多次类似操作时。因此,建议在开发中根据具体需求选择合适的遍历方式,以提高代码的可读性和性能。
Java循环操作哪个快?
|
4月前
|
存储 Java
|
2月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
90 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
2月前
|
算法 Java 测试技术
🧑‍💻Java零基础:Java 的循环退出语句 break
【10月更文挑战第16天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
60 6
|
3月前
|
Java
java基础(2)循环语句for、while、do...while
本文介绍了Java中的基础循环语句,包括for循环、while循环和do...while循环。文章通过示例代码展示了for循环的基本结构和用法,while循环的先判断后执行逻辑,以及do...while循环的先执行后判断逻辑。这些循环语句在Java编程中非常常用,用于执行重复的任务。
59 4
java基础(2)循环语句for、while、do...while
|
2月前
|
Java 测试技术 数据安全/隐私保护
📖Java零基础-while循环语句的深度解析
【10月更文挑战第6天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
42 1
|
2月前
|
传感器 Java 测试技术
📖Java零基础-do-while循环语句的深入剖析
【10月更文挑战第5天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
35 1
|
3月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
3月前
|
Java
Java循环
Java循环
46 6