20世纪1号是星期天数

该代码实现了一个程序,用于计算1901年至2000年间有多少个月的第一天是星期天。程序首先初始化一个数组并逐月填充日期,然后检查每个月的1号是否为星期天,并累加符合条件的月份。最后返回总和。

在二十世纪(1901年1月1日到2000年12月31日)中,有多少个月的1号是星期天?
已知1900年1月1日是星期一

public class SumOfSunday {
    public static void main(String[] args) {
        System.out.println(getDay());
    }

    public static int getDay() {
        int a[] = new int[50000];
        int sum = 0;
        int n = 1;
        for (int year = 1900;year <= 2000;year++) {
            for (int month = 1;month <= 12;month++)
                for (int j = 1;j <= getMonth(year,month);j++) {
                    a[n] = j;
                    n++;
                }
        }
        for (int i = 366;i <= n-30;i++)
            if (i % 7 == 0 && a[i] == 1)
                sum++;
        return sum;
    }

    public static int getMonth(int year,int month) {
        if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
            return 31;
        if (month == 4 || month == 6 || month == 9 || month == 11)
            return 30;
        if (month == 2 && (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
            return 29;
        return 28;
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值