JAVA经典算法40题(7)

 【程序13】

题目:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

Java代码 复制代码 收藏代码
  1. public class test {
  2. public static void main (String[]args){
  3. long k=0;
  4. for(k=1;k<=100000l;k++)
  5. if(Math.floor(Math.sqrt(k+100))==Math.sqrt(k+100) &&
  6. Math.floor(Math.sqrt(k+168))==Math.sqrt(k+168))
  7. System.out.println(k);
  8. }
  9. }
public class test {
    public static void main (String[]args){
        long k=0;
        for(k=1;k<=100000l;k++)
            if(Math.floor(Math.sqrt(k+100))==Math.sqrt(k+100) &&
                    Math.floor(Math.sqrt(k+168))==Math.sqrt(k+168))
                System.out.println(k);
    }
}

【程序14】题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天

Java代码 复制代码 收藏代码
  1. import java.util.*;
  2. public class test {
  3. public static void main (String[]args){
  4. int day=0;
  5. int month=0;
  6. int year=0;
  7. int sum=0;
  8. int leap;
  9. System.out.print("请输入年,月,日\n");
  10. Scanner input = new Scanner(System.in);
  11. year=input.nextInt();
  12. month=input.nextInt();
  13. day=input.nextInt();
  14. switch(month) {
  15. case 1:sum=0;break;
  16. case 2:sum=31;break;
  17. case 3:sum=59;break;
  18. case 4:sum=90;break;
  19. case 5:sum=120;break;
  20. case 6:sum=151;break;
  21. case 7:sum=181;break;
  22. case 8:sum=212;break;
  23. case 9:sum=243;break;
  24. case 10:sum=273;break;
  25. case 11:sum=304;break;
  26. case 12:sum=334;break;
  27. default:System.out.println("data error");break;
  28. }
  29. sum=sum+day;
  30. if(year@0==0||(year%4==0&&year0!=0))
  31. leap=1;
  32. else
  33. leap=0;
  34. if(leap==1 && month>2)
  35. sum++;
  36. System.out.println("It is the the day:"+sum);
  37. }
  38. }  
import java.util.*;
public class test {
    public static void main (String[]args){
        int day=0;
        int month=0;
        int year=0;
        int sum=0;
        int leap;
        System.out.print("请输入年,月,日\n");
        Scanner input = new Scanner(System.in);
        year=input.nextInt();
        month=input.nextInt();
        day=input.nextInt();
        switch(month) {
            case 1:sum=0;break;
            case 2:sum=31;break;
            case 3:sum=59;break;
            case 4:sum=90;break;
            case 5:sum=120;break;
            case 6:sum=151;break;
            case 7:sum=181;break;
            case 8:sum=212;break;
            case 9:sum=243;break;
            case 10:sum=273;break;
            case 11:sum=304;break;
            case 12:sum=334;break;
            default:System.out.println("data error");break;
        }
        sum=sum+day;
        if(year@0==0||(year%4==0&&year0!=0))
            leap=1;
        else
            leap=0;
        if(leap==1 && month>2)
            sum++;
        System.out.println("It is the the day:"+sum);
    }
}

 

你可能感兴趣的:(java,经典,40)