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);
    }
}

 

你可能感兴趣的:(java,算法,it)