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);
    
        }
    
    }
  • 相关阅读:
    Insertion Sort Gym
    Codeforces Round #524 (Div. 2) C. Masha and two friends 思路
    PTA 数据结构——是否完全二叉搜索树
    Crane UVA
    Unidirectional TSP UVA
    排序二叉树的建立,查询与删除
    The Tower of Babylon UVA
    DAG上的动态规划——嵌套矩阵问题
    Paper Folding UVA
    多图片上传插件
  • 原文地址:https://www.cnblogs.com/watchfree/p/5346940.html
Copyright © 2011-2022 走看看