package s1; //题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? public class Fs13 { public static void main(String[] args) { double k=0; for (double a=0;a<100000;a++) { double b=Math.sqrt(a+100); double c=Math.sqrt(a+256); if (b%2==0&&c%2==0){ k=a; } } System.out.println(k); } }
其他写法
public static void main(String[] args) { for (inti = 0; i <10000;i++) { intnum1=(int)Math.sqrt(i+100);//开方,值已固定了 intnum2=(int)Math.sqrt(i+268); if ((num1*num1==(i+100))&&(num2*num2==(i+268))) {//符合条件的打印出来 System.out.println(i+" "); } } }
package s1; import java.util.Scanner; //题目:输入某年某月某日,判断这一天是这一年的第几天? //分析 //(1 3 5 7 8 10 12腊 31天永不差 2月28天 4 6 9 11月30) public class Fs14 { public static void main(String[] args) { // int m2 = 0, k = 0, s = 0, int d2 = 0; System.out.println("请输入年份"); Scanner y = new Scanner(System.in); int y1 = y.nextInt(); System.out.println("请输入月份"); Scanner m = new Scanner(System.in); int m1 = m.nextInt(); System.out.println("请输入天"); Scanner d = new Scanner(System.in); int d1 = d.nextInt(); if (m1<=12&&m1>=1){ if (m1==1){ if (d1 >= 1 && d1 <= 31) { d2 = d1; }else { System.out.println("请输入正确的日期"); } } if (m1==2){ if (d1 >= 1 && d1 <= 28) { d2 = 31+d1; }else { System.out.println("请输入正确的日期"); } } if (m1==3){ if (d1 >= 1 && d1 <= 31) { d2 = 31+28+d1; }else { System.out.println("请输入正确的日期"); } } if (m1==4){ if (d1 >= 1 && d1 <= 30) { d2 = 31+28+31+d1; }else { System.out.println("请输入正确的日期"); } } if (m1==5){ if (d1 >= 1 && d1 <= 31) { d2 = 31+28+31+30+d1; }else { System.out.println("请输入正确的日期"); } } if (m1==6){ if (d1 >= 1 && d1 <= 30) { d2 = 31+28+31+30+31+d1; }else { System.out.println("请输入正确的日期"); } }if (m1==7){ if (d1 >= 1 && d1 <= 31) { d2 = 31+28+31+30+31+30+d1; }else { System.out.println("请输入正确的日期"); } }if (m1==8){ if (d1 >= 1 && d1 <= 31) { d2 = 31+28+31+30+31+30+31+d1; }else { System.out.println("请输入正确的日期"); } }if (m1==9){ if (d1 >= 1 && d1 <= 30) { d2 = 31+28+31+30+31+30+31+31+d1; }else { System.out.println("请输入正确的日期"); } }if (m1==10){ if (d1 >= 1 && d1 <= 31) { d2 = 31+28+31+30+31+30+31+31+30+d1; }else { System.out.println("请输入正确的日期"); } }if (m1==11){ if (d1 >= 1 && d1 <= 30) { d2 = 31+28+31+30+31+30+31+31+30+31+d1; }else { System.out.println("请输入正确的日期"); } }if (m1==12){ if (d1 >= 1 && d1 <= 31) { d2 = 31+28+31+30+31+30+31+31+30+31+30+d1; }else { System.out.println("请输入正确的日期"); } }}else { System.out.println("请输入正确的月份"); } System.out.println("该日期为一年中的第:"+d2+"天"); } }
错误思路
// int m1=m3+1; // for ( m1=1;m1<=13;m1++) { // if (m1 == 2) { // m2 +=28; // if (d1 >= 1 && d1 <= 28) { // d2 = m2+d1; // break; // } else { // System.out.println("请输入正确的日期"); // } // } else if (m1 == 4 || m1 == 6 || m1 == 9 || m1 == 11) { // m2 += 30; // if (d1 >= 1 && d1 <= 30) { // d2 = m2+d1; // break; // } else { // System.out.println("请输入正确的日期"); // } // } else { // m2+= 31; // if (d1 >= 1 && d1 <= 31) { // d2 = m2+d1; // break; // } else { // System.out.println("请输入正确的日期"); // } // } if (m1>=1&&m1<=12){ //(1 3 5 7 8 10 12腊 31天永不差 2月28天 4 6 9 11月30) if (d1>=1&&d1<=31){ int d2=365/12*m1+d1; }else { System.out.println("请输入正确的日期"); } System.out.println((365/12*m1+d1));}else { System.out.println("请输入正确的月份"); } // k+=m2; // s=m2+d2; // // } // System.out.println(d2); // } //}
其他写法
程序分析:以3月5日为例,应该先把前两个月的加起来
,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
闰年的条件:year除以400能整除,或者year除以4能整除,但是不能是100的倍数
public class Programme14 {
public static void main(String[] args) {
System.out.println("请输入年月日(用空格隔开):");
Scanner scanner=new Scanner(System.in);
int year=scanner.nextInt();//获取年份
int month=scanner.nextInt();//获取月份
int day=scanner.nextInt();//获取天数
int sum=0;//天数总和
//创建一个包含月份天数的数组,先按小年计算,如果是闰年,并且在三月以后再加1
int[] arr={31,28,31,30,31,30,31,31,30,31,30,31};
sum=day;//输入的天数肯定是要加的
for (inti = 1; i < month; i++) { //加上包含的月份天数
sum+=arr[i];
}
//最后判断是否是闰年,如果是的话再加1,否则sum就是结果了,条件比较长,我就抽出来写了
booleanisRight=(((year%4==0)&&(year%100!=0))||(year%400==0))&&(month>2);
if (isRight) {
sum+=1;
}
System.out.println(year+"年"+month+"月"+day+"日,是这年的第"+sum+"天");
}
import java.util.Scanner; public class Fs15 { // 题目:输入三个整数x,y,z,请把这三个数由小到大输出。 public static void main(String[] args) { System.out.println("请输入三个整数"); Scanner a = new Scanner(System.in); int x =a.nextInt(); int y = a.nextInt(); int z = a.nextInt(); if (z>y&&y>x){ int max=z,mid=y,min=x; System.out.println("最小"+min+"中间"+ mid +"最大"+max); } if (z>y&&x>y){ int max=z,mid=x,min=y; System.out.println("最小"+min+"中间"+ mid +"最大"+max); } if (y>x&&x>z){ int max=y,mid=x,min=x; System.out.println("最小"+min+"中间"+ mid +"最大"+max); } if (y>x&&z>x){ int max=y,mid=z,min=x; System.out.println("最小"+min+"中间"+ mid +"最大"+max); } if (x>y&&y>z){ int max=x,mid=y,min=z; System.out.println("最小"+min+"中间"+ mid +"最大"+max); } if (x>y&&z>y){ int max=x,mid=z,min=y; System.out.println("最小"+min+"中间"+ mid +"最大"+max); } } }
其他写法:
public class Programme15 {
public static void main(String[] args) {
System.out.println("三个整数:");
Scanner scanner=new Scanner(System.in);
int num1=scanner.nextInt();//获取整数
int num2=scanner.nextInt();
int num3=scanner.nextInt();
int temp=0;//最为一个交换数
if (num1>num2) {//保证num2>num1
temp=num1;
num1=num2;
num2=temp;
}
if (num1>num3) {//保证num3>num1
temp=num1;
num1=num3;
num3=temp;
}
if (num2>num3) {//保证num3>num2
temp=num2;
num2=num3;
num3=temp;
}
System.out.println("这三个数从小到大排列:"+num1+" "+num2+" "+num3);
scanner.close();
}