美文网首页
数学问题——日期

数学问题——日期

作者: 欢城深喟 | 来源:发表于2019-03-08 14:33 被阅读0次

    知识点

    • 预处理

    因为每个月的天数是固定的(2 月单独讨论),可以用一个数组预先存储好每个月累加的天数,需要访问第 n 个月的天数时直接从数组中取出前 n-1 个月的天数,避免计算机重复计算耗费大量时间。

    • 输入输出格式

    scanf() 注意 & 符号不要忘了

    代码

    #include<stdio.h>
    
    int days[13] = {0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}; 
    
    bool isLeapYear(int y){ //判断是否是闰年
        
        if(y%100 == 0){ //整百年 
            
            if(y%400 == 0)  return true;
            else            return false;
        }
        else{ //非整百年 
            
            if(y%4 == 0)    return true;
            else        return false;
        }
    }
    
    int main(){
        
        int y, m, d;
        int T;
        scanf("%d", &T);
        
        
        while(T--){
        
            int ans;
            scanf("%d:%d:%d",&y,&m,&d);
            
            if(isLeapYear(y)){
                
                if(m <= 2){
                    
                    ans = days[m] + d;
                }
                else{
                    
                    ans = days[m] + d + 1; 
                }
            }
            else{
                ans = days[m] + d;
            }
            
            printf("%d\n", ans);    
        }
    } 
    

    相关文章

      网友评论

          本文标题:数学问题——日期

          本文链接:https://www.haomeiwen.com/subject/toerpqtx.html