ccf 节日 java 思路
现在,给你a,b,c和y1, y2(1850 ≤ y1, y2 ≤ 2050),希望你输出从公元y1年到公元y2年间的每年的a月的第b个星期c的日期。
提示:关于闰年的规则:年份是400的整数倍时是闰年,否则年份是4的倍数并且不是100的倍数时是闰年,其他年份都不是闰年。例如1900年就不是闰年,而2000年是闰年。
为了方便你推算,已知1850年1月1日是星期二。
如果该年的a月第b个星期c确实存在,则以"yyyy/mm/dd"的格式输出,即输出四位数的年份,两位数的月份,两位数的日期,中间用斜杠“/”分隔,位数不足时前补零。
如果该年的a月第b个星期c并不存在,则输出"none"(不包含双引号)。
2015/05/10
思路:这道题主要在于
1、第几个月。
2、第几个星期。
3、a月份第一天是星期几(即确定一个标准时间点)
由此
1、确定时间点。有1850年1月1日对应星期二,那么对于y1年的第a月的第一天是星期几?
针对这个问题,需要求出从1850年1月1日到y1年1月1日有几天,并且如果天数正好被7整除,那么说明y1年1月1日就是星期二;如果余数为1,那么就是星期三,以此类推。但有一个很重要的点,要与a b c衔接,这个问题在2中会提到
2、题目问是几号,即从标准时间点(即a月1号)开始到第b个星期c。从a月1号开始已经是第一个星期,并且到这第一个星期结束共有:7减去(a月1号对应的星期数)+1;那么从第一个星期结束之后的第二个星期的第一天到第b个星期c总共的天数就是(b-2)*7+c。那么从标准时间点到a月的b个星期的c天,总共有:
7减去(a月1号对应的星期数)+1+(b-2)*7+c
但是上述过程只是针对余数从0到5,当余数为6时,2+6=8,超出7天范围,这时候就不能够用上述公式求解,而应换成:(b-1)*7+c。因为此时这一天必定是2+6=8转为星期一,此时就可以直接求解。
import java.util.Scanner;
import java.lang.Math;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
int c=sc.nextInt();
int y1=sc.nextInt();
int y2=sc.nextInt();
int y11=Math.min(y1,y2);
int y22=Math.max(y1,y2);
int tian=-1;
for(int t=y11;t<=y22;t++)
{
int days=0;
for(int i=1850;i0&&tian<=31))
{
System.out.println("none");
}
else
{
if(a<10)
{
if(tian<10)
System.out.println(t+"/0"+a+"/0"+tian);
else
System.out.println(t+"/0"+a+"/"+tian);
}
else
{
if(tian<10)
System.out.println(t+"/"+a+"/0"+tian);
else
System.out.println(t+"/"+a+"/"+tian);
}
}
}
if(a==2&&(t%400==0||(t%4==0&&t%100!=0)))
{
if(!(tian>0&&tian<=29))
{
System.out.println("none");
}
}
if(a==2&&(!(t%400==0||(t%4==0&&t%100!=0))))
{
if(!(tian>0&&tian<=28))
{
System.out.println("none");
}
else
{
if(a<10)
{
if(tian<10)
System.out.println(t+"/0"+a+"/0"+tian);
else
System.out.println(t+"/0"+a+"/"+tian);
}
else
{
if(tian<10)
System.out.println(t+"/"+a+"/0"+tian);
else
System.out.println(t+"/"+a+"/"+tian);
}
}
}
if(a==2||a==4||a==6||a==9||a==11)
{
if(!(tian>0&&tian<=30))
{
System.out.println("none");
}
else
{
if(a<10)
{
if(tian<10)
System.out.println(t+"/0"+a+"/0"+tian);
else
System.out.println(t+"/0"+a+"/"+tian);
}
else
{
if(tian<10)
System.out.println(t+"/"+a+"/0"+tian);
else
System.out.println(t+"/"+a+"/"+tian);
}
}
}
}
}
但是只有40分,,,
ccf 节日 java 思路相关推荐
- 百度工程师亲授CCF BDCI解题思路,15万大奖等你来拿
在人工智能和大数据竞赛领域,由中国计算机学会举办的CCF大数据与计算智能大赛(CCF BDCI)一直是众多开发者追逐的顶级赛事. 本届大赛值得关注的是,百度和清华大学在算法赛道贡献了"千言: ...
- 第十二届蓝桥杯A组省赛填空题Java思路及代码合集(相乘直线货物摆放路径回路计数)
文章目录 试题 A: 相乘 试题 B: 直线 试题 C: 货物摆放 试题 D: 路径 试题 E: 回路计数 试题 A: 相乘 本题总分:5 分 [问题描述] 小蓝发现,他将 1 至 100000000 ...
- java思路_java编程的思路
展开全部 java基本编程思路: 第一步:写框架(内层和外层32313133353236313431303231363533e78988e69d8331333337623463): public cl ...
- ccf认证java编程环境是什么_CSP/CCF 认证, 关于编程语言选择.
认证来了! 最近学校组织进行新一轮的 CSP/CCF 认证, 对算法不熟悉没什么底, 准备从今天开始练习一下基础. 认证前, 我知道什么? 说一下认证前的准备吧, 首先就纠结在报名的语言上了, 本来以 ...
- ccf画图java详细解析_ccfjava答案
{"data":{"id":"8000-000000437045-0","name":"SEO专题页栏目分发组 ...
- url映射 ccf (Java正则表达式80分解法)
问题描述 试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django.Ruby on Rails 等 ...
- 斗地主 java思路_使用Java实现简单的斗地主案例
使用Java实现简单的斗地主案例 案例说明:使用Java实现简单的斗地主洗牌发牌的操作: 具体规则: 共有54张牌,顺序打乱: 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后留三张为底牌(地主牌) ...
- 求多项式浮点java思路,求多项式函数实数根的方法
第29卷 第5期 Vol. 29No. 5昭通师范高等专科学校学报Journal of Zhaotong Teacher πs College 2007年10月Oct. 2007●数学 求多项式函数实 ...
- java用swing日历标记节日,java基于swing实现日历
labels[i].setText(" "); } addCalendar();//调用改变标签内容的方法 } }; jb.addMouseListener(l); this.se ...
- 渔夫打鱼问题 java思路_心理故事:一个渔夫出海打鱼,怎么会饿死?
渔夫的誓言 古时候有个渔夫,是出海打鱼的好手.可他却有一个不好的习惯,就是爱立誓言,即使誓言不符合实际,八头牛也拉不回头,将错就错. 这年春天,听说市面上墨鱼的价格很高,于是便立下誓言:这次出海只捕捞 ...
最新文章
- 某大学2021秋季学期Java期末考试范围概述
- Spring 依赖注入(DI)
- 新书预告《网络规划设计师考试考点分析与真题详解》
- 【植物大战僵尸2】算法 笔记
- OpenCASCADE:Modeling Data之拓扑
- 【Java语法】比较两个字符串是否相等
- java applog_java - 通过Logback登录到App Engine request_log - SO中文参考 - www.soinside.com
- php报错怎么改,php 怎么设置报错级别 和 控制报错[转]
- 同步工具类CyclicBarrier原理及使用
- anaconda navigator更新_Python 数据分析答疑 1:安装 Anaconda
- 适应科技发展观的Steam教学实践
- 【EJB】Developing EJB Applications -- Chapter 2(创建企业级Bean项目)
- bootstrap模板免费下载
- win10右键卡顿原因_右键菜单反应慢?win10系统解决右键菜单卡顿方法
- 高等代数中涉及到“正交”的名词总结
- windows server 2012 NIC组合---概念
- win10家庭版桌面软件图标左下角箭头删除
- swagger 接口参数顺序_swagger扩展为按代码定义顺序展示接口和字段
- Unity3d 在 twitter 转载(周报) UniteLA大会 和 Unity2019版本的Roadmap路线图
- 并发编程-25 高并发处理手段之消息队列思路 + 应用拆分思路 + 应用限流思路
热门文章
- php导航自助收录源码,最近网上流行的导航网秒收录网站php源码
- iOS 清理缓存简介
- ORB_SLAM2编译build_ros.sh时报错([rosbuild] Error from directory check: /opt/ros/kinetic/share)
- python3自动发送邮件并添加附件
- SOPC Builder failed to refresh PTF file
- 解决手机端页面的鼠标点击出现蓝色背景
- 车载ECU软件刷新flash driver制作
- 戴珊接替蒋凡,掌管淘宝天猫,阿里太子已被废?
- C# Activator.CreateInstance
- 台式机单硬盘安装黑苹果体验