【程序13】

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

Java代码 JAVA经典算法40题(7) _JAVA JAVA经典算法40题(7) _JAVA_02
  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. }

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

Java代码 JAVA经典算法40题(7) _JAVA JAVA经典算法40题(7) _JAVA_02
  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. }