文章

34

粉丝

179

获赞

13

访问

199.1k

头像
浙江工商大学problem 8
备考心情
发布于2022年2月24日 23:26
阅读数 4.6k

#include <iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
    int n;
    int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    cin>>n;
    for(int i=0;i<n;i++){
        int weihao;
        int count=0;
        string s;
        cin>>s;
        int len=s.length();
        weihao=s[len-1]-'0';  //提取出尾号
        for(int i=1;i<=12;i++){
            for(int j=1;j<=day[i];j++){
                if((j+1)%10==weihao || (j-1)%10==weihao)
                    count++;
            }
        }
        printf("%d\n",365-count);
 
    }
    return 0;
}

思路:本题自己没有反向思考,想着通过尾号来求可能的日子,没有去想通过可以通行的日子做一些模运算来判断是否与尾号匹配,因为想要得到最后一位数字可以通过模运算得到。

本题的扩展,不告诉年份,年份也要自己输入,也就是加上闰年与非闰年的判断,2月的月份会有变化。

用while(n--)会比三层for循环的运行时间会快些。

一定要记得-‘0’,转化为数字

用string s 读入,用字符数组不能AC

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发