每日一练——Java语法的强化

这篇博客包含四个编程挑战:1) 实现浮点数四舍五入到整数;2) 验证邮箱格式是否合法;3) 计算特定数列的和;4) 求两个数的最小公倍数。每个挑战都提供了示例输入和输出,以及相应的代码实现。这些挑战涵盖了基础的数学运算、正则表达式应用和算法设计,适合初学者提升编程技能。
摘要由CSDN通过智能技术生成

一、四舍五入

描述

定义一个int类型变量i,i为由浮点数变量d四舍五入后的整数类型,请将转换后的i进行输出

输入描述:

用户随机输入的浮点数

输出描述:

四舍五入之后的整数(小数点后一位>=5则进一,否则舍去)

示例1

输入:

14.99

输出:

代码实现:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double d= scanner.nextDouble();
        int i = (int) d;
        double num = d-i;
        if(num>=0.50){
            System.out.println(i+1);
        }
        else{
            System.out.println(i);
        }
    }

二、邮箱验证

描述

请根据给出的正则表达式来验证邮箱格式是否合法,如果用户输入的格式合法则输出「邮箱格式合法」,否则输出「邮箱格式不合法」。

输入描述:

任意字符串

输出描述:

根据输入的邮箱格式判断其合法于不合法,若输入字符串符合邮箱格式则输出邮箱格式合法,否则输出邮箱格式不合法

示例1

输入:

123123@nowcoder.com

输出:

邮箱格式合法

代码实现:

import java.util.Scanner;

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

        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        String emailMatcher="[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+";
        if(str.matches(emailMatcher)){
            System.out.println("邮箱格式合法");
        }else{
            System.out.println("邮箱格式不合法");
        }
    }
}

三、数列求和

描述

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

输入描述:

输出描述:

将该数列的和直接输出

代码实现:

public class Main {
    public static void main(String[] args) {
        long count = 1,sum=0;
        for(int i=1;i<=10;i++){
            count*=10;
            sum+=(count-1);
        }
        System.out.println(sum);
    }
}

四、最小公倍数

描述

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

输入描述:

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

输出描述:

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

示例1

输入:

3 7

输出:

21

代码实现:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        int m = console.nextInt();
        int n = console.nextInt();
        int result = getCM(m, n);
        System.out.println(result);
    }
// 辗转相除找最大公约数,然后x * y / 最大公约数就是最小公倍数
    public static int getCM(int m, int n){
        return m*n/fun(m,n);
    }
    public static int fun(int m,int n){
        if(n==0){
            return m;
        }else{
            return fun(n,m%n);
        }
    }
}

五、小球走过路程计算

描述

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

输入描述:

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

输出描述:

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

示例1

输入:

100 3

输出:

12.500 250.000

解题思路:相信这题大家问题应该可以读懂,我用一张图解大家就可以明白了。关键就是第n次落地就是第n-1次弹起,想明白这个就可以看懂代码了。

代码实现:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        float h=scanner.nextFloat();
        int n =scanner.nextInt();
        float sum = 0;
        for(int i = 0;i<n;i++){
            sum+= h;
            h/=2;
            if(i== n-1){
                System.out.println(String.format("%.3f",h)+" "+String.format("%.3f",sum));
            }
            sum+=h;
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值