手把手带你刷好题(牛客刷题①)

简介: 手把手带你刷好题(牛客刷题①)

小球走过路程计算

描述

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

输入描述:

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

输出描述:

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

题解:

1. import java.util.Scanner;
2. 
3. public class Main {
4. public static void main(String[] args) {
5.         Scanner scanner=new Scanner(System.in);
6. // 下落的高度和落地的次数
7. float h=scanner.nextFloat();
8. int n =scanner.nextInt();
9. float dis = 0;
10. for(int i = 0; i < n; i++){
11.             dis += h;  //每次加上落下来的距离
12.             h /= 2; //弹起距离缩短一半
13. if(i == n - 1){
14.                 System.out.println(String.format("%.3f", h)+" "+String.format("%.3f", dis));
15.             }
16.             dis += h; //弹上去走的距离
17.         }
18.     }
19. }

求平均数

描述

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

输入描述:

任意多个正整数

输出描述:

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

题解:

1. import java.util.Scanner;
2. 
3. public class Main {
4. 
5. public static void main(String[] args) {
6. Scanner scan = new Scanner(System.in);
7. int count=0;//记录有几个数
8. double sum=0.0;//和
9. double avg=0.0;//平均数
10. //多组输入
11. while(scan.hasNext()){
12. int num=scan.nextInt();
13. if(num<0){
14. break;
15.             }
16.             count++;
17. 
18.             sum+=num;  
19. 
20.         }
21. 
22.         avg=sum/count;
23.         System.out.println(String.format("%.2f",avg));
24. 
25. 
26.     }
27. }

 判断质数

描述

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

输入描述:

一个大于1的整数

输出描述:

true/false

题解:

方法一:

从1~number之间利用循环进行取模,发现模为0的就不是质数,直接return false,循环完也没有return的是质数,直接return true。

1. import java.util.Scanner;
2. 
3. public class Main {
4. public static void main(String[] args) {
5. Main main = new Main();
6. Scanner scan = new Scanner(System.in);
7. int number = scan.nextInt();
8.         System.out.println(main.isPrimeNumber(number));
9.     }
10. 
11. public Boolean isPrimeNumber(int number) {
12. 
13. for(int i=2;i<number;i++){
14. if(number%i==0){
15. return false;
16.             }
17.         }
18. return true;
19.     }
20. }

方法二:

从1~number之间进行开方,利用循环进行取模,发现模为0的就不是质数,直接return false,循环完也没有return的是质数,直接return true。

1. import java.util.Scanner;
2. 
3. public class Main {
4. public static void main(String[] args) {
5. Main main = new Main();
6. Scanner scan = new Scanner(System.in);
7. int number = scan.nextInt();
8.         System.out.println(main.isPrimeNumber(number));
9.     }
10. 
11. public Boolean isPrimeNumber(int number) {
12. 
13. for(int i=2;i<=Math.sqrt(number);i++){
14. if(number%i==0){
15. return false;
16.             }
17.         }
18. return true;
19.     }
20. }

计算整数位数

描述

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

输入描述:

一个整数

输出描述:

整数的位数

题解:

1. import java.util.Scanner;
2. 
3. public class Main {
4. public static void main(String[] args) {
5. Scanner scan = new Scanner(System.in);
6. int num = scan.nextInt();
7.         scan.close();
8. int count=0;//记录位数
9. if(num<=0)
10.                System.out.println(num);
11. while(num>0){
12.              num/=10;
13.             count++;
14.         }
15.          System.out.println(count);
16. 
17.     }
18. }



相关文章
|
机器学习/深度学习 人工智能 算法
手把手带你刷好题(牛客刷题③)
手把手带你刷好题(牛客刷题③)
手把手带你刷好题(牛客刷题③)
手把手带你刷好题(牛客刷题⑥)
手把手带你刷好题(牛客刷题⑥)
|
缓存 Java
手把手带你刷好题(牛客刷题④)
手把手带你刷好题(牛客刷题④)