文章
34
粉丝
179
获赞
13
访问
199.1k
#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
登录后发布评论
暂无评论,来抢沙发