hello,进来的小伙伴,你们好呐!
系列专栏:【牛客刷题】
作者简介:一名大二即将大三的科班小白,我很平凡,学会努力!
、四舍五入
描述
定义一个int类型变量i,i为由浮点数变量d四舍五入后的整数类型,请将转换后的i进行输出
输入描述:
用户随机输入的浮点数
输出描述:
四舍五入之后的整数(小数点后一位>=5则进一,否则舍去)
示例1
输入:
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);
}
}
二、邮箱验证
描述
请根据给出的正则表达式来验证邮箱格式是否合法,如果用户输入的格式合法则输出「邮箱格式合法」,否则输出「邮箱格式不合法」。
输入描述:
任意字符串
输出描述:
根据输入的邮箱格式判断其合法于不合法,若输入字符串符合邮箱格式则输出邮箱格式合法,否则输出邮箱格式不合法
示例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;
}
}
}