题目描述一
计算保存日期的那一年的所有天数
解题思路
- 分别截取日期的年月日保存为int型
- 定义数组保存1到12月的天数(或使用LocalDate的getDayOfMonth方法直接计算)
- 判断如果是闰年二月天数加1
- 累加当前月份前所有月份的天数和
- 用之前累加的天数加上当前月的天数
java
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));
//方式1
System.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};
//判断,如果是闰年二月的天数加1
if(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类系统输入
- 判断输入的数字是否在范围内
- 判断是否有重复,否则重新输入,跳出循环
- 将输入的所有数字存入数组
java
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之间不重复的数字
java
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));
}
}
题目描述四
计算两个数组中数字的重复个数
java
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);
}
}