zoukankan      html  css  js  c++  java
  • USACO Section 1.1 Friday the Thirteenth

    /*
    ID:linyvxi1
    LANG:C++
    TASK:friday
    */
    #include <stdio.h>
    int day_map[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int final[8]={0};
    
    bool leap_year(int n)
    {
    	if(n%400==0||(n%4==0&&n%100!=0))
    			return true;
    	return false;
    }
    
    int cal(int year)
    {
    	int i,days=0;
    	for(i=1900;i<year;i++){
    		days+=leap_year(i)?366:365;
    	}
    	return days;
    }
    
    int cal2(int day,int month)
    {
    	int j,tot=day;
    	for(j=1;j<month;j++)	
    		tot+=day_map[j];
    	tot+=13;
    	return tot;
    }
    
    int main()
    {
    	FILE*	fin=fopen("friday.in","r");
    	FILE*	fout=fopen("friday.out","w");
    
    	int N;
    	fscanf(fin,"%d",&N);
    	int i,j,k;
    	for(i=0;i<=N-1;i++){
    		
    		//先计算到这年1月1号有多少天
    	//	for(j=0;j<7;j++)
    	//		final[j]=0;
    		int day=cal(1900+i);
    		if(leap_year(1900+i))
    			day_map[2]=29;
    		else day_map[2]=28;
    		for(j=1;j<=12;j++){
    			int total=cal2(day,j);
    			if(total%7==0)
    				final[7]++;
    			else 
    				final[total%7]++;
    		}
    
    	}
    
    	fprintf(fout,"%d %d ",final[6],final[7]);
    	for(i=1;i<=5;i++){
    		fprintf(fout,"%d",final[i]);
    		if(i==5)
    			//putchar('\n');
    			fprintf(fout,"\n");
    		else fprintf(fout," ");
    	}
    }
    
  • 相关阅读:
    452.用最少数量的箭引爆气球
    134.加油站
    Javascript
    spring-JDBC模板
    AOP注解方式ApsectJ开发
    AOP通知类型
    AOP的使用
    AOP相关术语
    AOP
    IOC注解详解
  • 原文地址:https://www.cnblogs.com/yangce/p/2221365.html
Copyright © 2011-2022 走看看