https://www.acwing.com/problem/content/1343/
按天枚举
1 #include<iostream> 2 using namespace std; 3 int months[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 4 int weekend[7]; 5 int get(int y,int m){ 6 if(m!=2) return months[m]; 7 else{ 8 if(y%100!=0&&y%4==0||y%400==0){ 9 return 29; 10 } 11 return 28; 12 } 13 } 14 int main(void){ 15 int n; 16 cin>>n; 17 int days=0; 18 int year=1900,month=1,day=1; 19 while(year<1900+n){ 20 if(day==13){ 21 weekend[days%7]++; 22 } 23 days++; 24 day++; 25 if(day>get(year,month)) day=1,month++; 26 if(month>12) month=1,year++; 27 } 28 for(int i=5,j=0;j<7;i=(i+1)%7,j++){ 29 cout<<weekend[i]<<" "; 30 } 31 return 0; 32 }
按月枚举
1 #include<iostream> 2 using namespace std; 3 int months[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 4 int weekend[7]; 5 int main(void){ 6 int n; 7 cin>>n; 8 int days=0; 9 for(int year=1900;year<1900+n;year++){ 10 for(int month=1;month<=12;month++){ 11 weekend[(days+12)%7]++; 12 days+=months[month]; 13 if(month==2){ 14 if(year%100!=0&&year%4==0||year%400==0){ 15 days++; 16 } 17 } 18 } 19 } 20 for(int i=5,j=0;j<7;i=(i+1)%7,j++){ 21 cout<<weekend[i]<<" "; 22 } 23 return 0; 24 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端