需求:
思路:
代码:
public class Demo1 { public static void main(String[] args) { // 定义一个数组存储兔子对数 int[] rabbitNum = new int[20]; // 第一月、第二月都是已知,都是1 rabbitNum[0] = 1; rabbitNum[1] = 1; /* * 思路: * rabbitNum[2] = rabbitNum[0]+rabbitNum[1]; * rabbitNum[3] = rabbitNum[1]+rabbitNum[2]; * rabbitNum[4] = rabbitNum[2]+rabbitNum[3]; * …… * 第20月 * rabbitNum[19] = rabbitNum[17]+rabbitNum[18]; * */ // 找到规律用循环实现计算 for (int i = 2; i < rabbitNum.length; i++) { rabbitNum[i] = rabbitNum[i - 2] + rabbitNum[i - 1]; // 检验 System.out.println("第"+ (i + 1) +"月,兔子有"+ rabbitNum[i] +"只"); } } }
需求:
问题:
思路:
代码:
public class Demo2 { public static void main(String[] args) { /* * 由100元和100只得出: * 0 <= x <= 20 * 0 <= y <= 33 * 0 <= z <= 100 * */ for (int x = 0; x <= 20; x++) { for (int y = 0; y <= 33; y++) { int z = 100 - (x + y); // 判断小鸡数量为3的倍数并且钱数相加为100的情况 if (z % 3 == 0 && 5 * x + 3 * y + z / 3 == 100) { System.out.println("成立的只数:x:" + x + ",y:" + y + ",z:" + z); System.out.println("-------------------------------------"); } } } } }
代码:
public class Demo3 { public static void main(String[] args) { // 定义两个数组 int[] nums1 = {1, 2, 3}; int[] nums2 = {1, 2, 3}; // 利用匿名实例化对象并调用方法的返回值进行判断 if (new Demo3().compare(nums1, nums2)) { System.out.println("两个数组相同"); } else { System.out.println("两个数组不相同"); } } // 判断方法 // 返回为boolean值,参数为需要比较的数组 public boolean compare(int[] nums1, int[] nums2) { // 养成好习惯,返回布尔值时定义一个布尔值,初始化为true,用于返回 boolean flag = true; // 判断两个数组的长度是否相同 if (nums1.length == nums2.length) { // 判断数组内元素是否相等 for (int i = 0; i < nums1.length; i++) { // 如果相同时返回true if (nums1[i] != nums2[i]){ flag = false; } } } else { flag = false; } return flag; } }
需求:
代码:
import java.util.Scanner; public class Demo4 { public static void main(String[] args) { // 打印匿名实例化对象并调用find()的返回值 System.out.println(new Demo4().findIndex()); } public int findIndex() { // 定义一个数组 int[] arr = {19, 28, 37, 46, 50}; // 定义一个索引值,默认为-1,用于返回 int index = -1; System.out.println("请输入一个数:"); // 实例化一个扫描器 Scanner scanner = new Scanner(System.in); int input = scanner.nextInt(); for (int i = 0; i < arr.length; i++) { if (arr[i] == input) { index = i; } } // 关闭资源 scanner.close(); return index; } }
代码:
import java.util.Arrays; public class Demo5 { public static void main(String[] args) { // 定义一个需要反转的数组 int[] arr = {19, 28, 37, 46, 50}; // 打印匿名实例化对象并调用reverse()的返回值 System.out.println(Arrays.toString(new Demo5().reverse(arr))); } public int[] reverse(int[] arr) { // 定义一个反转后的数组,长度为反转前的数组 int[] newArray = new int[arr.length]; for (int i = 0; i < arr.length; i++) { // 将旧数组从后向前赋给新数组 newArray [i] = arr[arr.length - 1 - i]; } // 返回新数组 return newArray; } }
需求:
代码:
import java.util.Scanner; public class Demo6 { public static void main(String[] args) { // 定义一个长度为6的数组 int[] arr = new int[6]; // 调用getArray()进行获取数值 arr = new Demo6().getArray(arr); // 调用getScore()并打印返回值 System.out.println(new Demo6().getScore(arr)); } // 键盘录入方法 public int[] getArray(int[] arr) { System.out.println("请输入6位评委的分数"); // 实例化扫描器扫描输入 Scanner scanner = new Scanner(System.in); // 用循环接收数据并赋值给数组 for (int i = 0; i < arr.length; i++) { arr[i] = scanner.nextInt(); } // 关闭资源 scanner.close(); return arr; } // 算分方法 public int getScore(int[] arr) { // 在数组中找出最大值和最小值 // 定义一个最大值 int max = arr[0]; // 定义一个最小值 int min = arr[0]; // 定义一个求和 int sum = arr[0]; // 遍历判断 for (int i = 1; i < arr.length; i++) { // 使用Math类中的max()和min() max = Math.max(max, arr[i]); min = Math.min(min, arr[i]); sum += arr[i]; } // 去掉最大值和最小值 sum -= (max + min); // 返回和的平均值 return sum / (arr.length - 2); } }