您的位置:首页 > 其它

2012蓝桥杯决赛第一题

2016-05-23 21:02 225 查看
【结果填空】 (满分5分)
 
 
  1949年的国庆节(10月1日)是星期六。

 
  今年(2012)的国庆节是星期一。
 
  那么,从建国到现在,有几次国庆节正好是星期日呢?
 
 
  只要答案,不限手段!
  可以用windows日历,windows计算器,Excel公式,。。。。。
  当然,也可以编程!
 
  不要求写出具体是哪些年,只要一个数目!
  千万不要提交源代码!
 
答案不要写在这里,写在“解答.txt”中

这题:

/*  国庆星期日 

1949年的国庆节(10月1日)是星期六。  

今年(2012)的国庆节是星期一。 

那么,从建国到现在,有几次国庆节正好是星期日呢? 

只要答案,不限手段! 

可以用windows日历,windows计算器,Excel公式,。。。。。 

当然,也可以编程! 

不要求写出具体是哪些年,只要一个数目! 

千万不要提交源代码! 

答案不要写在这里,写在“解答.txt”中 

 */  

public class T17 {  

    public static int calc(int n,int m,int d){  

        int[][] days = {{0,31,28,31,30,31,30,31,31,30,31,30,31},    // 平年  

                       {0,31,29,31,30,31,30,31,31,30,31,30,31}};// 闰年  

        int b = 0;  // 默认为平年  

        if(n%4==0&&n%100!=0||n%400==0) b = 1;   // 是闰年  

        int sum = d;  

        for(int i=0;i<m;i++){  

            sum += days[i];  

        }  

        return sum;  

    }  

    public static void main(String[] args){  

        int count = 0;  

        // 1949年的国庆节(10月2日)是星期日。   

        // 得到这年10月2号后的的剩余天数  

        int total = calc(1949,12,31)-calc(1949,10,2);  

        for(int i=1950;i<2012;i++){  

            // calc(i)计算每年的10月1日是这一年的第天数,再用总天数对7取余==0说明是周日  

            total += calc(i,10,1);  // 计算当年到10月1的总天数  

            if(total%7==0){   

                System.out.println(i+"年10月1日");  

                count++;    // 次数加1  

            }  

        }  

        System.out.println("总数:"+count);  

    }  



[b][plain]
 view
plain copy

1950年10月1日  

1961年10月1日  

1967年10月1日  

1972年10月1日  

1978年10月1日  

1989年10月1日  

1995年10月1日  

2000年10月1日  

2006年10月1日  

总数:9  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: