处理没有提示的字符串、计算相隔天数应用题
正常情况下,小云每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小云要跑 2 千米。如果同时是周一或月初,小云也是跑 2 千米。
小云跑步已经坚持了很长时间,从 1990 年 1 月 1 日周一(含)到 2022 年 2 月 20 日周日(含)。请问某一天小云总共跑步多少千米?
输入格式:
有多组数据,每行为三个正整数,且不超过小云跑步日期的范围。
输出格式:
对每一组输入,在一行中输出小云总共跑步多少千米。
输入样例:
2020 1 1
1990 5 1
输出样例:
12833
143
代码长度限制 16 KB 时间限制 400 ms
内存限制 64 MB 栈限制 8192 KB
思路:
1、从字符串中提取年月日
2、计算有多少天
3、加上周一的数量和包含月的数量
4、减去既是周一又是月初
#include<stdio.h>
#include <string.h>
//codeblocks 需要嗯两次ctrl+z才能结束??
int main()
{int year,month,day;int n=1;char input[100];int i=0;for (;scanf("%c",&input[i])!=EOF;i++){if (input[i]=='\n')n++;}input[i]='\0';//!!!!!与下面i=0;int y,x,y0;while (n--){
//从字符串中提取年月日year = (input[i++]-'0')*1000 + (input[i++] -'0')*100 + (input[i++] - '0')*10 + input[i++]-'0';i++;if (input[i+1]!=' ')month = (input[i++] - '0')*10 + input[i]-'0';elsemonth = input[i]-'0';i+=2;//判断日期有几位if ( input[i+1]!='\0' && input[i+1]!='\n')//上面结尾必须加'\0' 不同的编译器不同的结果 加上i+1<strlen(input)与input[i+1]!='\0'二选一//if(input[i+1]>='0' && input[i+1]<='9')gcc不加\0使用strlen得到的结果比实际商 clang与实际长度相同但是答案也有不对的{//printf("a%daa%ca%daa\n",i,input[16],strlen(input));例题中没有这种情况day = (input[i++] - '0')*10 + input[i]-'0';}elseday = input[i]-'0';i+=2;
//计算有多少天y = year - 1990 ; //不用减1y0 = y; //记录有多少完整的年 用于后面计算有多少个月初x=0; //完整的年中闰年的个数if (y>2)x = (y-3)/4 + 1; //!!!1992结果为1 2020结果为7 从1990年到1992为第一个闰年 从93年开始每4年一个闰年 所以减3而不是减2y = y * 365 + x; //完整的年中的天数if (year==1990){y=0;y0=0;}if (year %4 == 0 && year%100 != 0 || year%400 == 0)//闰年额外加1{if (month > 2 || month ==2 && day ==29)y++;}for(year=1;year<month;year++)//month==1不执行 加上不完整年完整月的天数{if (year == 1 || year ==3 || year ==5 || year ==7 || year == 8 || year == 10 || year == 12)y += 31;else if(year==2)y+=28;elsey+=30;}y += day; //加上不完整月的为总天数day = y; //记录总天数 用于后面减去重复的
//计算周一的数量和包含月的数量,最后在减去重复的if (y%7) //每个周一初跑2km 每个月初跑2km 有余数需要额外加1 不完整的星期会包括周一y += y/7 + month + 1;elsey += y/7 + month;y += y0*12; //y0表示有多少个完整的年 乘12代表每个月初跑2km
//减去既是周一又是月初 int today=1;year = 1990;month = 1;y--; //第1天既是月初又是周一while (today<=day){if (month == 1 || month ==3 || month ==5 || month ==7 || month == 8 || month == 10 || month == 12)today += 31;else if (month == 2){if (year%4 == 0 && year%100 != 0 || year%400 == 0){today += 29;}else today +=28;}elsetoday += 30;if (today>day) //!!!!不判断会超范围break;if (today%7==1)y--;if (month==12) //新的一年更新月{month = 1;year ++;}elsemonth++;}printf("%d\n",y);}
}
相关文章:
处理没有提示的字符串、计算相隔天数应用题
正常情况下,小云每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小云要跑 2 千米。如果同时是周一或月初,小云也是跑 2 千米。 小云跑步已经坚持了很长时间,从 1990 年 1 月 1 日周…...
【LeetCode】力扣刷题热题100道(31-35题)附源码 搜索二维矩阵 岛屿数量 腐烂的橙子 课程表 实现 Trie (前缀树)(C++)
一、搜索二维矩阵 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 可以使用 从右上角开始搜索 的方法来有效地找到目标值。 选择起始位置: 从矩…...
react使用react-redux状态管理
1、安装 npm install react-redux2、创建store.js import { createStore } from redux;// 定义初始状态 const initialState {counter: 888 };// 定义 reducer 函数,根据 action 类型更新状态 function reducer(state initialState, action) {switch (action.ty…...
04_角色创建窗口
将上文的登录窗口隐藏 创建空节点 作为创建角色窗口 命名为CreateWnd 创建输入的名字的输入框 再创建一个按钮用来随机角色名字 创建开始游戏按钮 End....
Dockerfile -> Docker image -> Docker container
1. Dockfile -> Docker image docker build -t shuai_image -f xxx/xxx/Dockerfile . (.不能少)出现: [] Building xxx(10/17) > [internal] load build definition from Dockerfile > > transferring dockerfile: … > > transferring context …...
LDN的蓝牙双模键盘帮助文档
文档索引 已支持的PCB列表(仅列出少部分):键盘特性硬件软件键盘以及驱动蓝牙模式USB模式 驱动功能介绍主界面键盘列表页面键盘配置(使用双模键盘的请务必细看本说明)功能层配置(改键)触发层配置(改FN键等触发功能)功能选择(重要&a…...
搭建一个基于Spring Boot的驾校管理系统
搭建一个基于Spring Boot的驾校管理系统可以涵盖多个功能模块,例如学员管理、教练管理、课程管理、考试管理、车辆管理等。以下是一个简化的步骤指南,帮助你快速搭建一个基础的系统。 1. 项目初始化 使用 Spring Initializr 生成一个Spring Boot项目&am…...
运动相机拍视频过程中摔了,导致录视频打不开怎么办
3-11 在使用运动相机拍摄激烈运动的时候,极大的震动会有一定概率使得保存在存储卡中的视频出现打不开的情况,原因是存储卡和相机在极端情况下,可能会出现接触不良的问题,如果遇到这种问题,就不得不进行视频修复了。 本…...
MongoDB vs Redis:相似与区别
前言 在当今的数据库领域,MongoDB 和 Redis 都是备受关注的非关系型数据库(NoSQL),它们各自具有独特的优势和适用场景。本文将深入探讨 MongoDB 和 Redis 的特点,并详细对比它们之间的相似之处和区别,帮助…...
数字图像处理:实验二
任务一: 将不同像素(32、64和256)的原图像放大为像素大 小为1024*1024的图像(图像自选) 要求:1)输出一幅图,该图包含六幅子图,第一排是原图,第 二排是对应放大…...
基于海思soc的智能产品开发(高、中、低soc、以及和fpga的搭配)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 市场上关于图像、音频的soc其实非常多,这里面有高、中、低档,开发方式也不相同。之所以会这样,有价格的因素&am…...
SSM旅游信息管理系统
🍅点赞收藏关注 → 添加文档最下方联系方式可咨询本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅 项目视频 …...
FastADMIN实现网站启动时执行程序的方法
FastAdmin基于ThinkPHP框架:ThinkPHP框架中与 Application_Start 类似的功能可以在应用初始化钩子(Hook)中实现。在FastAdmin项目中,一般在应用的 common.php 文件中定义行为(Behavior)来实现类似功能。 定…...
【威联通】FTP服务提示:服务器回应不可路由的地址。被动模式失败。
FTP服务器提示:服务器回应不可路由的地址。被动模式失败。 问题原因网络结构安全管理配置服务器配置网关 问题 FTP服务器提示:服务器回应不可路由的地址…...
nginx常用配置 (含负载均衡、反向代理、限流、Gzip压缩、图片防盗链 等示例)
nginx的配置文件通常在 /etc/nginx/nginx.conf , /etc/nginx/conf.d/*.conf 中, 一般直接 改 conf.d目录下的 default.conf文件, 然后 先检测配置文件是否有错误 nginx -t 再重新加载配置文件 或 重启nginx,命令如下 nginx -s reload 或…...
21.1、网络设备安全概述
目录 网络设备安全概况——交换机、路由器安全威胁 网络设备安全概况——交换机、路由器安全威胁 第一个是MAC地址泛洪,MAC地址表记录着交换机拥有的MAC地址跟端口的对应关系 MAC地址表主要是三个字段,MAC地址对应的端口号,也就表示主机是连…...
通过idea创建的springmvc工程需要的配置
在创建的spring mvc工程中,使用idea开发之前需要配置文件包括porm.xml、web.xml、springmvc.xml 1、porm.xml 工程以来的spring库,主要包括spring-aop、spring-web、spring-webmvc,示例配置如下: <project xmlns"http:/…...
Redis 持久化机制:RDB 和 AOF
Redis 持久化机制:RDB 和 AOF Redis 主要提供了两种持久化方式:**RDB(Redis Database)**和 AOF(Append-Only File)。它们各自的实现原理、优缺点以及适用场景如下。 1. RDB(Redis Database&…...
【博客之星评选】2024年度前端学习总结
故事的开端...始于2024年第一篇前端技术博客 那故事的终末...也该结束于陪伴了我一整年的前端知识了 踏入 2025 年,满心激动与自豪,我成功闯进了《2024 年度 CSDN 博客之星总评选》的 TOP300。作为一名刚接触技术写作不久的萌新,这次能走到这…...
将IDLE里面python环境pyqt5配置的vscode
首先安装pyqt5全套:pip install pyqt5-tools 打开Vscode: 安装第三方扩展:PYQT Integration 成功配置designer.exe的路径【个人安装pyqt5的执行路径】,便可直接打开UI文件,进行编辑。 配置pyuic,如果下图填写方法使用…...
ComfyUI Qwen人脸生成图像教程:提示词分层写法,效果更稳定
ComfyUI Qwen人脸生成图像教程:提示词分层写法,效果更稳定 1. 认识Qwen人脸生成模型 1.1 模型核心能力解析 Qwen-Image-Edit-F2P模型是一款专注于从单张人脸生成完整全身图像的专业工具。它不同于普通的图像生成模型,而是专门针对人脸到全…...
从KITTI到自定义:OpenPCDet在Windows 10下的实战数据适配与避坑指南
1. OpenPCDet框架与KITTI数据集基础 OpenPCDet作为当前点云3D目标检测领域的热门框架,其模块化设计和简洁的代码结构让很多研究者选择它作为开发基础。我第一次接触这个框架时,最吸引我的是它的数据-模型分离设计——这种设计让切换数据集和模型变得非常…...
黑苹果触摸板终极配置指南:从卡顿到流畅的完整解决方案
黑苹果触摸板终极配置指南:从卡顿到流畅的完整解决方案 【免费下载链接】Hackintosh Hackintosh long-term maintenance model EFI and installation tutorial 项目地址: https://gitcode.com/gh_mirrors/ha/Hackintosh 还在为黑苹果触摸板的生硬操作而烦恼吗…...
Python爬虫新手必看:Image-Downloader搭配ChromeDriver的完整配置指南(附常见报错解决)
Python爬虫实战:Image-Downloader与ChromeDriver的深度配置手册 当你第一次尝试用Python爬取网页图片时,是否曾被各种环境配置问题搞得焦头烂额?作为过来人,我完全理解那种看着满屏报错信息却无从下手的挫败感。本文将带你深入理解…...
如何获得IEEE Xplore 兼容 PDF 文件?
某些期刊或会议(如DDCLS)提交终版论文PDF时,要求提供IEEE Xplore 兼容 PDF 文件,详细获取步骤如下。 1. 准备会议编号(Conference ID) 进入会议官网,一般在最终提交(Final submission)界面查看会议编号。如果实在找不到,直接给会…...
终极指南:如何让Intel Mac保持凉爽的3个简单技巧
终极指南:如何让Intel Mac保持凉爽的3个简单技巧 【免费下载链接】smcFanControl Control the fans of every Intel Mac to make it run cooler 项目地址: https://gitcode.com/gh_mirrors/smc/smcFanControl 你是否曾经在使用Intel Mac进行视频剪辑或编程时…...
从浏览器到讲台:PPTist如何用Vue3重新定义在线演示文稿编辑体验
从浏览器到讲台:PPTist如何用Vue3重新定义在线演示文稿编辑体验 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, al…...
ESP32-S3开发板到手后,除了Hello World,你的第一个性能调优配置应该做什么?
ESP32-S3开发板性能调优实战:从Hello World到硬件极限 拿到ESP32-S3开发板的第一天,大多数开发者都会迫不及待地烧录一个Hello World程序,看着串口终端打印出熟悉的字符,确认开发环境运转正常。但对于追求极致性能的工程师来说&am…...
51单片机GPIO控制实战:手把手教你玩转P0-P3端口
51单片机GPIO深度实战:从端口特性到高级控制技巧 当你第一次点亮LED时,那种成就感就像打开了嵌入式世界的大门。但真正掌握51单片机的GPIO,远不止让灯闪烁那么简单。P0-P3这四个看似简单的端口,藏着许多工程师多年积累的实战经验。…...
ThreadX LevelX移植避坑指南:NorFlash接口适配与常见错误排查
ThreadX LevelX移植避坑指南:NorFlash接口适配与常见错误排查 在嵌入式系统开发中,NorFlash因其非易失性、快速读取和随机访问特性成为关键存储介质。ThreadX LevelX作为专为嵌入式设计的闪存抽象层,能有效解决NorFlash的擦写寿命问题。但在实…...
