牛客竞赛每日俩题 - Day9

news2025/1/19 20:19:43

目录

日期推算

分解因数


日期推算

美国节日__牛客网

 

思路:

首先,我们要想找到一个月第N个星期W,一定需要一个参照物,最好的目标当然是这个月的第一天。拿到参照物后,我要能得 到参照物的星期数,然后就能得到结果了。所以这个题有两个难点:判断某个月的1号到底是周几,然后根据这个星期数得到这个月第N个星期W

方法:

1、三部曲求这一年过了几天

int DAYS[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

bool isLeapYear(int y) {
	return y % 400 == 0 || (y % 100 != 0 && y % 4 == 0);
}

int nDays(int y, int m, int d) {
	int n = d;
	for (int i = 0; i < m - 1; i++) {
		n += DAYS[i];
	}
	if (m > 2 && isLeapYear(y)) {
		n++;
	}
	return n;
}

2、 计算从基准日期,到带计算日期过了多少天,然后模取7得到星期几

 优化防止爆int:

365*(y-1)%7==(365%7)*((y-1)%7)==1*(y-1)%7==(y-1)%7

int week(int y, int m, int d) {
    int tot=(y - 1) + (y - 1) / 4 - (y - 1) / 100 + (y - 1) / 400 + nDays(y, m, d);
	//(y - 1)* 365+中间经历多少闰年*1+最后一年的天数
    int w = tot % 7;
	if (w == 0) {
		w = 7;
	}
	return w;
}



3、通过这个参照点拿到一个月的第N个星期W
那么,我们假设要拿到一个月的第一个周五,我们要怎么做呢?一个很简单的思路就是,先看看这个月的1号是周几,然后往后数就行了,假如1号是周四,那么2号就是第一个周五,假如1号是周六,那么7号就是第一个周五。
那么,怎么拿到这个向后的天数呢?我们发现,如果所求星期数比1号星期数大,那么直接相减后+1就是那一天了,例如1号周三,我要周五,那么(5-3)+1即可求出第一个周五是3号。那么反过来是所求星期数小,例如1号周三,我要周一,那么显然要先把周一看成周八才行。也就是(8-3)+1。第一个周一是6号。但是这样要判断,所以干脆统统都让它加7以后减,减完后的结果再mod一下7,就能得到结果了。也就是:(所求星期数 + 7 - 1号星期数) % 7 + 1。这样我们就拿到了求第一个周几公式。随后,我们只需要在这个公式上,加上7 * (n - 1),即刻求出第n个周几。
而面对某个月的最后一个周几,我们要做的是拿到下个月的第一天然后往回推即可。

// 已知当月1日是星期 w,计算第 n 个星期 e 是几号
int m1(int w, int n, int e) {
	return 1 + (n - 1) * 7 + (7 - w + e) % 7;
}

#include <iostream>
#include <cstdio>
using namespace std;
int DAYS[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

bool isLeapYear(int y) {
	return y % 400 == 0 || (y % 100 != 0 && y % 4 == 0);
}
// 求解 y,m,d 这一年过了多少天
int nDays(int y, int m, int d) {
	int n = d;
	for (int i = 0; i < m - 1; i++) {
		n += DAYS[i];
	}
	if (m > 2 && isLeapYear(y)) {
		n++;
	}
	return n;
}
// 传入 y,m,d 计算从基准日期,到带计算日期过了多少天。
// 算出这个天数的 MOD 7 的同余数
int week(int y, int m, int d) {
    int tot=(y - 1) + (y - 1) / 4 - (y - 1) / 100 + (y - 1) / 400 + nDays(y, m, d);
	int w = tot % 7;
	if (w == 0) {
		w = 7;
	}
	return w;
}
// 已知当月1日是星期 w,计算第 n 个星期 e 是几号
int m1(int w, int n, int e) {
	return 1 + (n - 1) * 7 + (7 - w + e) % 7;
}
int main() {
	int y;
	while (cin >> y) {
		printf("%d-01-01\n", y);
		int w;
		w = week(y, 1, 1);
		printf("%d-01-%02d\n", y, m1(w, 3, 1));
		w = week(y, 2, 1);
		printf("%d-02-%02d\n", y, m1(w, 3, 1));
		w = week(y, 6, 1);
		int d = (w == 1 ? 7 : w - 1);
		printf("%d-05-%02d\n", y, 32-d);
		printf("%d-07-04\n", y);
		w = week(y, 9, 1);
		printf("%d-09-%02d\n", y, m1(w, 1, 1));
		w = week(y, 11, 1);
		printf("%d-11-%02d\n", y, m1(w, 4, 4));
		printf("%d-12-25\n\n", y);
	}
}

分解因数

分解因数__牛客网

16
16 = 2 * 2 * 2 * 2

345
345 = 3 * 5 * 23

44
44 = 2 * 2 * 11

90
90 = 2 * 3 * 3 * 5



 对因子分解最简写法

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int n;
    while(cin>>n)
    {
        printf("%d = ",n);
        for(int i=2;i<=sqrt(n);i++)//注意n是会改变的,所以遍历范围远小于n的算术平方根
        {
            while(n!=i)
            {
                if(n%i==0)
                {
                    printf("%d * ",i);
                    n/=i;
                }
                else break;
            }
        }
        cout<<n<<endl;
    }
    
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/84767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

马来酰亚胺聚乙二醇叠氮,MAL-PEG-N3,Maleimide-PEG-Azide

马来酰亚胺聚乙二醇叠氮&#xff08;MAL-PEG-N3&#xff09;是MeloPEG的硫醇反应性“点击化学”PEG交联剂之一。马来酰亚胺与pH 6.5-7.5的游离巯基/巯基迅速反应&#xff0c;形成稳定的&#xff0c;不可裂解的硫醚键。马来酰亚胺和硫醇的反应使得叠氮化物功能性PEG能够快速有效…

[附源码]Python计算机毕业设计Django的家政服务平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

设计模式-Acyclic Visitor(非循环访问者模式)

目的&#xff1a;允许将新功能添加到现有的类层次结构中&#xff0c;而不会影响这些层次结构&#xff0c;也不会有四人帮访客模式中那样循环依赖的问题。 类图&#xff1a; 使用场景&#xff1a; 需要在现有层次结构中添加新功能而无需更改或影响该层次结构时。 当某些功能在层…

Linux服务器远程访问通过Tomcat部署的静态资源

一、安装Java和Tomcat 1.1 安装Java 下载jdk8切换到root用户&#xff0c;创建文件夹/usr/local/java&#xff0c;将下载的jdk压缩包上传到该目录下&#xff0c;解压 mkdir /usr/local/java cd /usr/local/java rz tar -zxvf jdk-8u351-linux-x64.tar.gz编辑配置文件&#xf…

数据技术篇之数据服务

第6章 数据服务 1.服务架构演进 演进过程 DWSOA &#xff08;1&#xff09;实施原理   将业务方对数据的需求通过SOA服务的方式暴露出去。有需求驱动&#xff0c;一个需求开发一个或则几个接口&#xff0c;编写接口文档&#xff0c;开放给业务方调用。 &#xff08;2&…

[附源码]Python计算机毕业设计SSM基于WEB的心理测评系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【手把手教你】使用qstock进行量化回测

01qstock简介qstock由“Python金融量化”公众号开发&#xff0c;试图打造成个人量化投研分析开源库&#xff0c;目前包括数据获取&#xff08;data&#xff09;、可视化(plot)、选股(stock)和量化回测&#xff08;backtest&#xff09;四个模块。其中数据模块&#xff08;data&…

SAS中用单因素ANOVA研究不同疗法对焦虑症的有效性

本教程将介绍如何使用SAS进行单因素方差分析。 最近我们被客户要求撰写关于单因素ANOVA的研究报告&#xff0c;包括一些图形和统计输出。我们想研究不同疗法对焦虑症的有效性。我们收集了以下类别的75个主题的样本&#xff1a; 无处理&#xff08;1个n1 27&#xff09;。生物…

5W3H法与SMART原则的结合使用

5W3H 5W3H分析法&#xff0c;又称“八何分析法”。在实际工作中&#xff0c;人们常常运用5W3H分析法&#xff0c;进行顾客分析、市场需求分析&#xff0c;解决计划编制的结构问题、方向问题、执行力问题。 5W3H是描述问题的手段&#xff0c;其具体指的是&#xff1a;What&…

【图像处理】深入解析LBP算法

问题 LBP是一种常见的特征描述算法&#xff0c;用来提取局部的纹理特征&#xff0c;其原理其实很简单&#xff0c;下面我们就来看看它是怎么一回事吧。 LBP简介 LBP&#xff08;Local Binary Patterns&#xff0c;局部二值模式&#xff09;是一种很简单但很高效的局部纹理特…

2025年DMS前装搭载或突破750万辆!多方势力搅局「融合集成」

在智能驾驶功能和舱内人机交互体验不断融合演进的过程中&#xff0c;基于摄像头的DMS/OMS功能正在进入新的发展周期。而在欧洲等部分国家及地区&#xff0c;DMS的标配&#xff08;主要涉及驾驶安全的监控&#xff0c;比如&#xff0c;驾驶员疲劳、注意力分散、安全带使用、吸烟…

java工厂策略模式的开发应用

java工厂策略模式的开发应用前言准备工作具体实现测试仰天大笑出门去&#xff0c;我辈岂是蓬蒿人前言 大概内容&#xff1a; 假设我有五个车间&#xff0c;每一个车间生产不同的车子&#xff0c;想要统一管理&#xff0c;不关心哪个车间生产什么车&#xff1b;只需找一个代理…

Ajax(一)

1.客户端与服务器 1.1 服务器 上网过程中&#xff0c;负责存放和对外提供资源的电脑。 1.2 客户端 上网过程中&#xff0c;负责获取和消费资源的电脑。 2.URL地址 2.1 URL地址的概念 2.2 URL地址的组成部分 3. 分析网页的打开过程 3.1 图解客户端与服务器的通信过程 三个…

NLP学习笔记(一) RNN基本介绍

大家好&#xff0c;我是半虹&#xff0c;这篇文章来讲循环神经网络 (Recurrent Neural Network, RNN) 文章行文思路如下&#xff1a; 首先通过前馈神经网络引出为啥需要循环神经网络然后介绍循环神经网络的核心思想与运作方式最后拓展两个循环神经网络常见且常用的变体 在讲循…

Windows 7恢复分区丢失了怎么恢复?

问题&#xff1a;Windows 7恢复分区丢失 戴尔、惠普和华硕等电脑制造商现会在他们的计算机上创建一个恢复分区。恢复分区允许用户在系统出现问题时将计算机恢复到出厂默认设置。但是&#xff0c;由于丢失了恢复分区&#xff0c;因此某些用户无法将电脑恢复到出厂设置。这是一个…

析构函数可以为纯虚函数吗?纯虚函数可以有函数体吗?纯虚函数需要函数体吗?

先回答标题中中的几个问题&#xff1a; 析构函数可以为纯虚函数吗&#xff1f; yes。纯虚函数可以有函数体吗&#xff1f; yes。纯虚函数需要函数体吗&#xff1f; 一般来讲&#xff0c;如果析构函数是纯虚函数&#xff0c;那么析构函数必须要有函数体&#xff0c;如果是其它函…

Web前端大作业:基于bootstrap响应式页面,家具装修公司网站

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

最新版本APT漏洞利用工具箱

点击"仙网攻城狮”关注我们哦~不当想研发的渗透人不是好运维让我们每天进步一点点简介1.最近发现一个好用的渗透工具箱&#xff0c;基本包含最新热门漏洞exp&#xff0c;分享一下项目地址&#xff1a;https://github.com/White-hua/Apt_t00ls环境&#xff1a;jdk1.8如果双…

【深度学习】PyTorch深度学习实践 - Lecture_11_Advanced_CNN

文章目录一、GoogLe Net1.1 网络结构1.2 Inception Model1.3 11 Convolution1.4 PyTorch-GPU 实现 GoogLe Net二、Residual Net2.1 梯度消失和梯度爆炸2.2 残差模块2.3 PyTorch-GPU 实现 Simple Residual Net2.3.1 整体结构2.3.2 残差块对象2.3.3 残差网络对象2.3.4 完整代码三…

微服务框架 SpringCloud微服务架构 分布式事务 38 动手实践 38.7 案例实现TCC 模式【分析】

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 分布式事务 文章目录微服务框架分布式事务38 动手实践38.7 案例实现TCC 模式【分析】38.7.1 实现TCC 模式38.7.2 TCC 的空回滚 和业务悬挂38…