zoukankan      html  css  js  c++  java
  • 算法训练 黑色星期五

    算法训练 黑色星期五  
    时间限制:1.0s   内存限制:512.0MB
        

    问题描述
      有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形,以帮助你的迷信朋友解决难题。
      说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月1日是星期四,用户输入的年份肯定大于或等于1998年。
      输入格式:输入只有一行,即某个特定的年份(大于或等于1998年)。
      输出格式:输出只有一行,即在这一年中,出现了多少次既是13号又是星期五的情形。
    输入输出样例
    样例输入
    1998
    样例输出
    3
    import java.util.Scanner;
    public class Main {
        static int getweekoffirstday(int y){
            int i=1998,week=3;
            int days=0;
            for(i=1998;i<y;i++){
                if(i%400==0||(i%4==0&&i%100!=0))
                    days+=366;
                else
                    days+=365;
            }
            return (days+week)%7;
        }
        static void print(int y){
            int day[][]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
        int week=getweekoffirstday(y),flag=y%400==0||(y%4==0&&y%100!=0)?1:0;
        int times=0,i,days=0;
        for(i=0;i<12;i++){
            if((days+12+week)%7==4)
                times++;
            days+=day[flag][i];
        }
        System.out.println(times);
        }
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner sc=new Scanner(System.in);
            int y=sc.nextInt();
            print(y);
    
        }
    
    }
  • 相关阅读:
    注解
    使用反射机制调用属性和私有成员与代理模式的介绍
    动态代理模式
    SVN的安装与常用功能使用以及解决安装配置过程中的一些错误
    企业私服
    -Java-log4j
    List,Set,Map用法以及区别
    接口和抽象类有什么区别
    Dalvik opcodes
    外派公司或者外包公司,真的适合选择吗?
  • 原文地址:https://www.cnblogs.com/watchfree/p/5346940.html
Copyright © 2011-2022 走看看