第一题:求最小公倍数
题目描述
编写一个方法,该方法的返回值是两个不大于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); } //计算最小公倍数 public static int getCM(int m, int n){ //计算m、n中较大者 int max=Math.max(m,n); //从max到m*n之间找最小公倍数 for(int i=max;i<=m*n;i++){ //如果既能被m整除又能被n整除,说明是最小公倍数,直接返回 if(i%m==0&&i%n==0){ return i; } } return -1; } }
第二题:小球走过路程计算
题目描述
一球从h米高度自由落下,每次落地后反弹回原高度的一半再落下,求它在第n次落地时共经过了多少米?第n次反弹多高?
输入描述:
输入小球的初始高度和落地的次数(先输入小球初始高度再输入反弹次数)
输出描述:
输出小球反弹的高度和经过的距离(先输出反弹的高度再输出经过的距离,中间用空格隔开)
示例
输入:100 3
输出:12.500 250.000
题解
最后一次下落时不计算弹起来的距离,所以只计算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 dis = 0; for(int i = 0; i < n; i++){ dis += h; //每次加上落下来的距离 h /= 2; //弹起距离缩短一半 if(i == n - 1){ System.out.println(String.format("%.3f", h)+" "+String.format("%.3f", dis)); } dis += h; //弹上去走的距离 } } }
第三题:求平均数
题目描述
键盘输入任意多个10000以内正整数(负数代表结束),求出它们的平均数
输入描述:
任意多个正整数
输出描述:
它们的平均数(平均数为double类型,保留两位小数)
示例
输入:12 23 32 43 -1
输出:27.50
题解
使用为了循环实现,具体方法如下:
import java.util.Scanner; public class Main { public static void main(String[] args) { //标准输入 Scanner scan = new Scanner(System.in); //计数 int cnt=0; //记录平均数 double avg=0; //记录累加和 double sum=0; while(scan.hasNext()){ int num=scan.nextInt(); //如果小于0,直接终止循环 if(num<0){ break; } //累加和加上对应num sum+=num; //计数加一 cnt++; } //计算平均数 avg=sum/cnt; System.out.println(String.format("%.2f",avg)); } }
第四题:判断质数
题目描述
请补全预设代码中判断质数的方法。
输入描述:
一个大于1的整数
输出描述:
true/false
示例
输入:2
输出:true
题解
重点在于掌握判断质数的方法,具体实现如下:
import java.util.Scanner; public class Main { public static void main(String[] args) { Main main = new Main(); Scanner scan = new Scanner(System.in); int number = scan.nextInt(); System.out.println(main.isPrimeNumber(number)); } public Boolean isPrimeNumber(int number) { //write your code here...... //满足以下条件不是质数(1+2)或(3) //1 非2的偶数 //2 奇数(除1和本身)有其他奇数因子 //3 2到开根号之间有因子 if(number!=2 && number%2==0)return false; for(int i=3;i<number;i+=2){ if(number%i==0)return false; } return true; } }
第五题:计算整数位数
题目描述
输入一个整数,计算它的位数。如果输入的整数不大于0则输出这个数
输入描述:
一个整数
输出描述:
整数的位数
示例
输入:9999
输出:4
输入:-1
输出:-1
题解
具体实现方法如下:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int num = scan.nextInt(); scan.close(); //write code here...... if(num<=0){ System.out.print(num); }else{ for(int i =1;i<11;i++){//int最多10位 if((num/=10)==0){ System.out.print(i); break; } } } } }