hello,进来的小伙伴,你们好呐!
系列专栏:【牛客刷题】
作者简介:一名大二即将大三的科班小白,我很平凡,学会努力!
给大家推荐一个超级好用的刷题网站——牛客网!

定义一个int类型变量i,i为由浮点数变量d四舍五入后的整数类型,请将转换后的i进行输出
用户随机输入的浮点数
四舍五入之后的整数(小数点后一位>=5则进一,否则舍去)
输入:
14.99
输出:
15
代码实现:
- 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);
- }
- }
请根据给出的正则表达式来验证邮箱格式是否合法,如果用户输入的格式合法则输出「邮箱格式合法」,否则输出「邮箱格式不合法」。
任意字符串
根据输入的邮箱格式判断其合法于不合法,若输入字符串符合邮箱格式则输出邮箱格式合法,否则输出邮箱格式不合法
输入:
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类型的变量,值为两个数的最小公倍数
输入:
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次反弹多高?
输入小球的初始高度和落地的次数(先输入小球初始高度再输入反弹次数)
输出小球反弹的高度和经过的距离(先输出反弹的高度再输出经过的距离,中间用空格隔开)
输入:
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
- sum+= h;
- h/=2;
- if(i== n-1){
- System.out.println(String.format("%.3f",h)+" "+String.format("%.3f",sum));
- }
- sum+=h;
- }
- }
- }