1.输入年月日,求是该年的第几天
import java.util.Scanner;
public class Test{
public static void main(String[] args){
//输入年月日,计算是该年的多少天
Scanner sc = new Scanner(System.in);
System.out.print("请输入年份: ");
int year = sc.nextInt();
int februaryDays = 0; //表示二月份天数
if(year % 400 ==0 || year % 4 ==0){
februaryDays = 29;
}else{
februaryDays = 28;
}
System.out.print("请输入月份: ");
int month = sc.nextInt();
while(month<1 || month >12){
System.out.print("您输入的月份应在1-12之间,请重新输入:");
month = sc.nextInt();
}
System.out.print("请输入日期:");
int date = sc.nextInt();
while(true){
if(month==2){
if(date<1 || date>februaryDays){
System.out.print("您输入的日期应在1-"+februaryDays+"之间,请重新输入");
date = sc.nextInt();
}else{
break;
}
}else if(month==4 || month==6 || month==9 || month ==11){
if(date<1 || date>30){
System.out.print("您输入的日期应在1-30之间,请重新输入:");
date = sc.nextInt();
}else{
break;
}
}else{
if(date<1 || date>31){
System.out.print("您输入的日期应在1-31之间,请重新输入:");
date = sc.nextInt();
}else{
break;
}
}
}
int[] lastdays = {0,31,31+februaryDays,31+februaryDays+31,31+februaryDays+31+30,31+februaryDays+31+30+31,31+februaryDays+31+30+31+30,31+februaryDays+31+30+31+30+31,31+februaryDays+31+30+31+30+31+31,31+februaryDays+31+30+31+30+31+31+30,31+februaryDays+31+30+31+30+31+31+30+31,31+februaryDays+31+30+31+30+31+31+30+31+30};
for(int i=0;i<lastdays.length;i++){
if(i==month-1){
System.out.println(year+"年"+month+"月"+date+"日是"+year+"年的"+(lastdays[i]+date)+"天");
break;
}
}
}
}
2.输入一列数,从大到小输出这些数
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("请输入要判断的数的个数:");
int[] num = new int[sc.nextInt()];
//用一个数组来接收所有的数
for(int i=0;i<num.length;i++){
System.out.print("请输入第"+(i+1)+"数:");
num[i] = sc.nextInt();
}
//给数组中的元素进行排序
//冒泡排序:相邻两数相比较,将较大数放右边,比较结束后,最大数放在了最右边,下一轮再按照样的方式比较余下的数,得到余下的数的最大值,并放最右边,直至余下的数只有一个。
for(int i=0;i<num.length-1;i++){
for(int j=0;j<num.length-1-i;j++){
//第一轮比较n个数,需比较n-1次;第二轮比较余下n-1个数,需比较n-2次;..第n-1轮比较余下2个数,需比较1次
if(num[j]>num[j+1]){
//每一轮中,当前一个数大于后一个数,则交换两个数的位置
int temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
}
}
}
//排序完成后,依次输出数组中的元素
System.out.print("顺序输出为:");
for(int i=0;i<num.length;i++){
System.out.print(num[i]+" ");
}
}
}
3.一个整数,加上100后是一个完全平方数,加上168也是一个完全平方数,求该数
public class Test{
public static void main(String[] args){
//如何确定一个数n是不是完全平方数,判断Math.sqrt(n)%1是否为0,为0则n是完全平方数,不为0则不是
for(int i=0;;i++){
if(Math.sqrt(i+100)%1==0){
if(Math.sqrt(i+168)%1==0){
System.out.println(i+100);
}
}
}
}
}