题目描述一
计算保存日期的那一年的所有天数
解题思路
- 分别截取日期的年月日保存为int型
- 定义数组保存1到12月的天数(或使用LocalDate的getDayOfMonth方法直接计算)
- 判断如果是闰年二月天数加1
- 累加当前月份前所有月份的天数和
- 用之前累加的天数加上当前月的天数
import java.time.LocalDate;
public class 计算日期 {public static void main(String[] args) {String dateStr="2024-04-28";//定义的日期//截取年转换为int型int year=Integer.parseInt(dateStr.substring(0,4));//截取月转换为int型int month=Integer.parseInt(dateStr.substring(5,7));//截取日转换为int型int days=Integer.parseInt(dateStr.substring(8));//方式1System.out.println(LocalDate.of(year, month, days).getDayOfMonth());//方式2//定义数组,保存1月到12月每个月的天数int[] arr= {31,28,31,30,31,30,31,31,30,31,30,31};//判断,如果是闰年二月的天数加1if(year%4==0&&year%100!=0) {arr[1]++; }//累加当前月份前所有月份的天数和int dayofyear=0;for(int i=0;i<=month-2;i++) {dayofyear += arr[i];}//之前累加的天数加上当前月的天数dayofyear += days;System.out.println(dayofyear);}
}
题目描述二
在1-33之间输入7个不重复的数字
集体思路
- 使用Scanner类系统输入
- 判断输入的数字是否在范围内
- 判断是否有重复,否则重新输入,跳出循环
- 将输入的所有数字存入数组
import java.util.Arrays;
import java.util.Scanner;
public class E22 {public static void main(String[] args) {try(Scanner input=new Scanner(System.in)){//定义数组,保存7个数字int[] numbers=new int[7];outer:for(int i=0;i<numbers.length;i++){System.out.printf("请输入第%d个数字:",i+1);int temp=input.nextInt();//检查是否在1-33范围内if(temp<1||temp>33) {System.err.println("请输入1-33之间的数字");i--;continue;}//检查是否存在重复数字for(int k=0;k<i;k++) {if(numbers[k]==temp) {System.out.println("请不要输入重复的数字!");i--;continue outer;//外层循环结束}}numbers[i]=temp;System.out.println(Arrays.toString(numbers));}}}
}
题目描述三
随机产生7个1-33之间不重复的数字
import java.util.Arrays;
public class E23 {public static void main(String[] args) {//产生1-33间不重复随机7个数int[] numbers = new int[7];outer:for(int i=0;i<numbers.length;i++) {//产生1个随机数存入临时变量int temp=(int) (Math.random()*33+1);//检查随机数是否重复if(numbers[i]==temp) {i--;continue outer;}numbers[i]=temp;} System.out.println(Arrays.toString(numbers));}
}
题目描述四
计算两个数组中数字的重复个数
public class E24 {public static void main(String[] args) {int[] sysnumbers= {12,13,16,34,23,21,22};int[] usernumbers= {12,15,16,34,19,87,78};int counter=0;for(int i=0;i<sysnumbers.length;i++) {for(int k=0;k<usernumbers.length;k++) {if(sysnumbers[i]==usernumbers[k]) {counter++;break;}} }System.out.println(counter); }
}