Java练习题11

【程序13】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

/**
 * 【程序13】
 * 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
 */
public class Subject13 {

    public static void main(String[] args) {
        squareNum();
    }
    public static void squareNum(){
        int i = 1;
        while(true){
            int tmp = i*i;
            int z = 1;
            while(true){
                if(z*z - tmp >=168){
                    break;
                }
                z++;
            }
            if(z*z - i*i == 168 && (z*z - 168-100)>=0){
                System.out.println("一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,则该数为:"+(z*z - 168-100));
                break;
            }else{
                i++;
            }
        }
    }
}

运行结果:

 

【程序14】
题目:输入某年某月某日,判断这一天是这一年的第几天?

/**
 * 【程序14】
 * 题目:输入某年某月某日,判断这一天是这一年的第几天?
 */
public class Subject14 {
    public static void main(String[] args) {
        dayNum("2018-03-08");
        dayNum("1900-03-08");
        dayNum("2000-03-08");
        dayNum("2020-03-08");
        dayNum("2018-02-08");
        dayNum("1900-02-08");
        dayNum("2000-02-08");
        dayNum("2020-02-08");

    }

    public static void dayNum(String date){
        String[] dateStr = date.split("-");
        int dayNum = 0;
        if(leapYear(dateStr[0])){
            dayNum = month(dateStr[1] ,"1") + Integer.parseInt(dateStr[2]);
        }else{
            dayNum = month(dateStr[1] ,"0") + Integer.parseInt(dateStr[2]);
        }
        System.out.println("输入日期为该("+dateStr[0]+")年的第"+dayNum+"天");
    }

    /**
     * 根据年份判断闰年还是普通年
     * @param year
     * @return
     */
    public static boolean leapYear(String year){
        int years = Integer.parseInt(year);
        if((years%4 ==0 && years%100!=0) || years%400 == 0){
            return true;
        }
        return false;
    }

    /**
     * 根据月份获取天数
     * @param month
     * @param flag
     * @return
     */
    public static int month(String month,String flag){
        int dayNum = 0;
        switch (month){
            case "01": dayNum = 0; break;
            case "02": dayNum = month("01", flag) +31; break;
            case "03":
                if("0".equals(flag)) {
                    dayNum = month("02", flag) + 28;
                }else {
                    dayNum = month("02", flag) + 29;
                }
                break;
            case "04": dayNum = month("03", flag) + 31; break;
            case "05": dayNum = month("04", flag) + 30; break;
            case "06": dayNum = month("05", flag) + 31; break;
            case "07": dayNum = month("06", flag) + 30; break;
            case "08": dayNum = month("07", flag) + 31; break;
            case "09": dayNum = month("08", flag) + 31; break;
            case "10": dayNum = month("09", flag) + 30; break;
            case "11": dayNum = month("10", flag) + 31; break;
            case "12": dayNum = month("11", flag) + 30; break;
        }
        return dayNum;
    }
}

运行结果:


 尚学堂给同学们带来全新的Java300集课程啦!java零基础小白自学Java必备优质教程_手把手图解学习Java,让学习成为一种享受_哔哩哔哩_bilibili尚学堂给同学们带来全新的Java300集课程啦本课程为Java300集2022版第一季,配合最新版的Java课程,所有视频重新录制,课件所有图形做了重新绘制和配色,图解学习Java,让学习成为一种享受本套教程专门为零基础学员而制,适合准备入行Java开发的零基础学员,视频中穿插多个实战项目。每一个知识点都讲解的通俗易懂,由浅入深。不仅适用于零基础的初学者,有经验的程序员也可做巩固学习。后续课https://www.bilibili.com/video/BV1qL411u7eE?spm_id_from=333.337.search-card.all.click

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值