当前位置: 首页 > wzjs >正文

有备案号的网站是公司的吗关键词排名 收录 查询

有备案号的网站是公司的吗,关键词排名 收录 查询,网站项目需求说明书,怎样做响应式网站题目描述 13 13 13 号又是一个星期五,那么 13 13 13 号在星期五比在其他日子少吗? 为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出 n n n 年的一个周期,要求计算 1900 1900 1900 …

题目描述

13 13 13 号又是一个星期五,那么 13 13 13 号在星期五比在其他日子少吗?

为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出 n n n 年的一个周期,要求计算 1900 1900 1900 1 1 1 1 1 1 日至 1900 + n − 1 1900+n-1 1900+n1 12 12 12 31 31 31 日中十三号落在周一到周日的次数。

这里有一些你要知道的:

  1. 1900 1900 1900 1 1 1 1 1 1 日是星期一。
  2. 4 , 6 , 11 4,6,11 4,6,11 9 9 9 月有 30 30 30 天,其他月份除了 2 2 2 月都有 31 31 31 天,闰年 2 2 2 月有 29 29 29 天,平年 2 2 2 月有 28 28 28 天。
  3. 年份可以被 4 4 4 整除的为闰年( 1992 = 4 × 498 1992=4\times 498 1992=4×498 所以 1992 1992 1992 年是闰年,但是 1990 1990 1990 年不是闰年)。
  4. 以上规则不适合于世纪年。可以被 400 400 400 整除的世纪年为闰年,否则为平年。所以, 1700 , 1800 , 1900 , 2100 1700,1800,1900,2100 1700,1800,1900,2100 年是平年,而 2000 2000 2000 年是闰年。

输入格式

一个正整数 n n n

输出格式

依次输出周六、日、一、二、三、四、五在 13 13 13 日出现的次数。

输入输出样例 #1

输入 #1

20

输出 #1

36 33 34 33 35 35 34

说明/提示

【数据范围】:对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 400 1\le n \le 400 1n400

USACO Training Section 1.1

提交链接

Friday the Thirteenth

思路分析

✅ 总体思路

本题要求统计从 1900 1900 1900 1 1 1 1 1 1 日开始,连续 n n n 年 中,每个月的 13 13 13 号是星期几的次数,并按照指定顺序输出每个星期几出现的次数。

采用模拟法,从 1900 1900 1900 1 1 1 1 1 1 日开始,逐月推进,通过取模计算每月 13 13 13 号是星期几,并用数组统计每个星期几出现的频率。

🔍 逐步分析

1️⃣ 定义变量与判断闰年函数

int num[7];
  • n u m [ i ] num[i] num[i] 表示星期 i i i 上出现 13号 的次数

  • 星期编号:0=周日1=周一,…,6=周六

bool is_year(int x)
{return (x % 4 == 0 && x % 100 != 0) || x % 400 == 0;
}
  • 判断年份 x x x 是否是闰年

  • 遵循闰年规则:能被 4 4 4 整除但不能被 100 100 100 整除,或能被 400 400 400 整除

2️⃣ 每月天数判断函数 solve

int solve(int x , int y)
  • 返回 x x x y y y 月的天数

  • 2 2 2月特殊处理,调用 is_year() 判断是否是闰年

  • 4 4 4 6 6 6 9 9 9 11 11 11 月为 30 30 30 天,其余为 31 31 31

3️⃣ 主函数逻辑

int day = 1; // 1900年1月1日是周一
  • day 表示当前月份的 1 1 1 号是星期几;

  • 使用取模来推进计算,(day + 12) % 7 表示本月 13 13 13 号是星期几

4️⃣ 双层循环:年份 & 月份推进

for (int i = 1900; i <= 1900 + n - 1; i++) 
{for (int j = 1; j <= 12; j++) {int k = (day + 12) % 7;num[k]++;day = (day + solve(i , j)) % 7;}
}
  • i i i 1900 1900 1900 年开始循环 n n n

  • j j j 1 1 1 月到 12 12 12

  • (day + 12) % 7:当前月份 13 13 13 号是星期几

  • num[k]++:统计这个星期几出现了一个 “13号”

  • day = (day + 天数) % 7:推算下个月 1 1 1 号是星期几

5️⃣ 输出结果

cout << num[6] << " " << num[0];
for(int i = 1; i <= 5; i++)cout << " " << num[i];
  • 题目要求输出顺序为:周六 周日 周一 周二 周三 周四 周五;

  • 因为 0 = 周日, 1 = 周一, ..., 6 = 周六,所以输出顺序就是:
    num[6], num[0], num[1], ..., num[5]

完整代码:

#include <bits/stdc++.h>
using namespace std;int num[7];
bool is_year(int x)
{if (x % 4 == 0 && x % 100 != 0 || x % 400 == 0)return true;return false;
}int solve(int x , int y)
{if(y == 2)return is_year(x) ? 29 : 28;else if(y == 4 || y == 6 || y == 9 || y == 11)return 30;elsereturn 31;
}
int main()
{int n;cin >> n;int day = 1;  //每月的1号为周几   初始为周一for (int i = 1900; i <= 1900 + n - 1; i++){for (int j = 1; j <= 12; j++){//每一个月的13号 判断周几?int k = (day + 12) % 7;num[k]++;day = (day + solve(i , j)) % 7;  //下月1号星期几}}cout << num[6] << " " << num[0];for(int i = 1; i <= 5; i++)cout << " " << num[i];return 0;
}
http://www.dtcms.com/wzjs/510429.html

相关文章:

  • 国外社交网站设计欣赏河北网站seo
  • 广东白云手机网站建设武汉网站设计十年乐云seo
  • 我注册过的网站最强大的搜索引擎
  • 阳江商城网站开发设计seo怎么推广
  • 做ar的网站爱站网长尾关键词挖掘工具下载
  • 做搜狗网站优化快速排网站怎么快速被百度收录
  • 设计品质网站建设网络推广员的日常工作
  • 昆明网站建设网站网赌怎么推广拉客户
  • 如何做音乐网站软文营销的步骤
  • 找团队做网站需要明确哪些东西关键词工具有哪些
  • 常用的网站开发百度seo多少钱一个月
  • 企业网站栏目规划的重要性网络推广公司企业
  • 使用word做网站品牌营销案例
  • 网站的 联系我们怎么做免费做网站软件
  • 桐城网站建设湖南企业竞价优化
  • 宁波电商网站建设开发百度风云榜
  • 简单网页制作过程win优化大师怎么样
  • 电商网站代码模板自媒体营销的策略和方法
  • 微网站开发 付费阅读网站流量分析
  • 网站建设的实验心得体会上海百度seo优化
  • 永久免费建站空间冯站长之家
  • 转移网站如何转数据库广西seo优化
  • 域名解析要登入哪个网站做百度一下你就知道123
  • 邢台wap网站建设费用站长平台官网
  • 优易官方网站山东seo推广公司
  • 出行南宁app软件下载徐州百度seo排名优化
  • 淮阴网站建设营销网站建设哪家快
  • 做circrna的网站宁波seo深度优化平台
  • 中高端网站建设软件开发外包
  • 济南定机票网站建设东莞互联网推广