题目描述
编写一个方法,该方法的返回值是两个不大于100的正整数的最小公倍数
输入描述:
两个int类型变量作为方法的参数
输出描述:
int类型的变量,值为两个数的最小公倍数
代码
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) {
int i=0;
//write your code here......
for (i = (m > n ? m : n);; i++) {
if (i % m == 0 && i % n == 0) {
return i;
}
}
}
}
结果
JAVA12 小球走过路程计算
描述
一球从h米高度自由落下,每次落地后反弹回原高度的一半再落下,求它在第n次落地时共经过了多少米?第n次反弹多高?
输入描述:
输入小球的初始高度和落地的次数(先输入小球初始高度再输入反弹次数)
输出描述:
输出小球反弹的高度和经过的距离(先输出反弹的高度再输出经过的距离,中间用空格隔开)
示例1
输入:100 3
输出:12.500 250.000
备注:
结果保留三位小数,保留方式已经写在预设方法备注中
思路:
代码:
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;
//write your code here......
for(int i=1;i<=n;i++){
if(i==1){
sum+=h;
}else{
sum+=h*2;
}
h=h/2;
}
System.out.println(String.format("%.3f", h)+" "+String.format("%.3f", sum));
}
}
结果
JAVA13 求平均数
描述
键盘输入任意多个10000以内正整数(负数代表结束),求出它们的平均数,
输入描述:
任意多个正整数
输出描述:
它们的平均数(平均数为double类型,保留两位小数)
示例1
输入:12 23 32 43 -1
输出:27.50
备注:
输出格式与保留两位小数的方法已经写在预设代码注解中
代码:
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int sc = 0;
double avg = 0;
int i = 0;
//write your code here......
for (i = 0;; i++) {
sc = scan.nextInt();
if (sc >= 0) {
avg += sc;
} else {
break;
}
}
avg = avg / i;
System.out.println(String.format("%.2f", avg));
}
}
结果:
JAVA14 判断质数
描述
请补全预设代码中判断质数的方法。
输入描述:
一个大于1的整数
输出描述:
true/false
示例1
输入:2
输出:true
示例2
输入:9
输出:false
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) {
for (int i = 2; i < number / 2; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
结果
JAVA15 计算整数位数
描述
输入一个整数,计算它的位数。如果输入的整数不大于0则输出这个数
输入描述:
一个整数
输出描述:
整数的位数
示例1
输入:9999
输出:4
示例2
输入:0
输出:0
示例3
输入:-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();
int c = 1;
//write code here......
if (num <= 0) {
System.out.println(num);
} else {
while (num/10>0) {
num/=10;
c++;
}
System.out.println(c);
}
}
}
结果:
JAVA16 数组遍历
描述
将用户输入的六个数字填入数组并找出数组中最大值和最小值
输入描述:
随机输入的6个整数
输出描述:
输出数组中的最大值,最小值(最大值最小值之间用空格隔开。若有多个最大值或最小值,输出一次即可,如样例2所示)
方式1:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] ary = new int[6];
int max;
int min;
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < ary.length ; i++) {
ary[i] = scanner.nextInt();
}
//write your code here......
max = ary[0];
min = ary[0];
for (int i = 1; i < ary.length ; i++) {
if (ary[i] > max) {
max = ary[i];
}
if (ary[i] < min) {
min = ary[i];
}
}
System.out.println(max + " " + min);
}
}
方式2:
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] ary = new int[6];
int max;
int min;
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < ary.length ; i++) {
ary[i] = scanner.nextInt();
}
//write your code here......
Arrays.sort(ary);
max=ary[ary.length-1];
min=ary[0];
System.out.println(max + " " + min);
}
}
结果:
JAVA17 数组倒转
描述
输入6个整数,先将其输出然后再将数组倒转,再次输出数组
输入描述:
用户随机输入的6个int类型变量
输出描述:
先输出用户输入顺序的数组(这一步预设代码已给出)
再输出反转后的数组(输出格式为Arrays.toString(arr),参考预设代码中的输出格式)
示例1
输入:52 10 37 40 60 83
复制输出:[52, 10, 37, 40, 60, 83]
[83, 60, 40, 37, 10, 52]
代码:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] arr = new int[6];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
arr[i] = scanner.nextInt();
}
System.out.println(Arrays.toString(arr));
//write your code here......
int temp=0;
for(int i=0;i<arr.length/2;i++){
temp=arr[i];
arr[i]=arr[arr.length-i-1];
arr[arr.length-i-1]=temp;
}
System.out.println(Arrays.toString(arr));
}
}
结果:
JAVA18 二维数组求和
描述
给定一个二维数组,请你编写一个求和函数,计算出这个数组元素的和
输入描述:
无
输出描述:
输出二维数组元素的和
代码:
public class Main {
public static void main(String[] args) {
int[][] arr = {{11,33,55},{22,44,66,88},{131,214,315,146},{928,827,726,625},{424,525}};
int sum=add(arr);
System.out.println(sum);
}
public static int add(int[][] arr) {
int sum=0;
//write your code here......
for(int[] i:arr){
for(int j:i){
sum+=j;
}
}
return sum;
}
}
结果:
JAVA20 验证年龄
描述
采用封装的思想,为Person类定义年龄属性,要求:
修改年龄时判断其范围,若年龄小于0则按0输出,若年龄大于200则按200输出。
输入描述:
年龄整数值
输出描述:
1. 若年龄小于0则输出0;
2. 若年龄大于200则输出200;
3. 若年龄介于[0,200]之间则直接输出。
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Person p = new Person();
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt()) {
int age = scanner.nextInt();
p.setAge(age);
System.out.println(p.getAge());
}
}
}
class Person {
private int age;
//write your code here......
public void setAge(int age) {
this.age = age;
}
public int getAge() {
if (age < 0) {
return 0;
} else if (age <= 200) {
return age;
} else {
return 200;
}
}
}
结果: