方XiRui 发表于 2013-2-3 11:29:37

JAVA经典算法40题(7)

【程序13】
题目:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
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时需考虑多加一天
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);    }} 
页: [1]
查看完整版本: JAVA经典算法40题(7)