2017/05/17
题目13:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
分析
注意如何判断一个数是完全平方数的
解答
public class chapter13 {
public static void main(String[] args) {
for (int i = 1; ; i++) {
if(get_result(i+100)&&get_result(i+168)){
System.out.println(i);
break;
}
}
}
private static boolean get_result(int i) {
boolean flag = false;
double a = Math.pow(i,1/2);
for (int j = 1; j < Math.sqrt(i)+1; j++) {
if(i == Math.pow(j,2)){
flag = true;
break;
}
}
return flag;
}
}
结果:
156
心得
无
===========================================================================
题目14:输入某年某月某日,判断这一天是这一年的第几天?
分析
注意判断闰年
解答
public class chapter14 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please input the year:");
int year = input.nextInt();
System.out.println("Please input the month:");
int month = input.nextInt();
System.out.println("Please input the day:");
int day = input.nextInt();
if(month>12||month<1||day<1||day>31){
System.out.println("Input Error");
System.exit(0);
}
int number_day_of_year = get_day(year,month,day);
System.out.println(number_day_of_year);
}
private static int get_day(int year, int month, int date) {
int n = 0;
int[] month_date = new int[] {0,31,28,31,30,31,30,31,31,30,31,30};
if((year%400)==0 || ((year%4)==0)&&((year%100)!=0))
month_date[2] = 29;
for(int i=0;i<month;i++)
n += month_date[i];
return n+date;
}
}
结果:
Please input the year:
2014
Please input the month:
1
Please input the day:
5
5
心得
还可以用calendar实现。
===========================================================================
题目15:输入三个整数x,y,z,请把这三个数由小到大输出。
分析
简单
解答
public class chapter15 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please input three numbers:");
int min = input.nextInt();
int mid = input.nextInt();
int max = input.nextInt();
min = (min>mid)?(min+mid-(mid = min)):min;
max = (max>mid)?max:(max+mid-(mid = max));
min = (min>mid)?(min+mid-(mid = min)):min;
System.out.println("这三个数有小到大输出为:"+min+" "+mid+" "+max);
}
结果:
Please input three numbers:
58
63
59
这三个数有小到大输出为:58 59 63
心得
技巧