每日一题(小白)暴力娱乐篇25

由题意直知,要求将给定的字符串转为符合格式的字符串。首先我们来思考一下例如02/02/02这样的数字日月肯定不用进行修改,修改后需要加上对应的年份的前两位,题目要求1960年1月1日~2059年12年12月31日,(对1960年至2059年进行循环因为题目满足每一天不需要再关注日)这其中所有只有2002符合要求。再举例18/05/25,也就只需要去找18和25在年份中满足的情况,然后按照题目要求输出结果即可(题目是从60~59即所有年份至多出现一次)。

①接收指定的年月日,进行拆分(得到两个年份,如果一样视为一个年份)

②遍历1960~2059寻找满足尾数是年份的数字

③如果x做年,y就是日,z就是月,相反亦然

④每次找到按照格式输出年月日

⑤**补充:**由于还需要进行日期大小的排序所以对年月日的大小需要进行比较,然后判断输出

代码如下👇

复制代码
	static int a,b,c;
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String s = scan.nextLine();//接收数据
		String[] s2 = s.split("/");//进行拆分
		a= Integer.parseInt(s2[0]);//转换为数字
		b = Integer.parseInt(s2[1]);
		c = Integer.parseInt(s2[2]);
		int[] month={0,31,28,31,30,31,30,31,31,30,31,30,31};//由于排序,需要逐个比较
			for (int i = 1960; i <=2059 ; i++) {//年
			if (i%4==0&&i%100!=0 || i%400==0) {//判断闰年
					month[2]=29;
				}else {
					month[2]=28;
				}
			
			for (int j = 1; j <= 12; j++) {//月
				for (int k = 1; k <= month[j]; k++) {//日
					int ans=i%100;
					if (judice(ans,j,k)) {//判断是否符合题意
						System.out.printf("%d-%02d-%02d",i,j,k);//格式化输出,多学习一下
						System.out.println();
					}
				}
			}
			}
			    
		scan.close();
	}
	public static boolean judice(int i,int j,int k) {//判断公式
		if (a==i&&b==j&&c==k)return true;
		if (a==j&&b==k&&c==i)return true;
		if (a==k&&b==j&&c==i)return true;
		return false;
	}

printf是格式化的输出

在后面加字符串和要输出的数据,字符串代表格式。这里02d代表2输出二位不够自动补0

相关推荐
胡萝卜术31 分钟前
从“分数打架”到“排名投票”:为什么你的ChatBI必须用RRF?
算法·设计模式·面试
亦暖筑序1 小时前
Java 8老系统AI Workflow实战:把一次性AI对话升级成可恢复工作流
java·后端
Asize1 小时前
初识DFS 与 BFS:递归、队列与图遍历
算法
敲代码的彭于晏2 小时前
Bean 生命周期完全图解:前端同学也能看懂的 Spring 核心机制
java·前端·后端
plainGeekDev3 小时前
ButterKnife → ViewBinding
android·java·kotlin
罗西的思考15 小时前
机器人 / 强化学习】HIL-SERL:人类在环驱动的具身智能进化框架
人工智能·算法·机器学习
CSharp精选营17 小时前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
美团技术团队18 小时前
LongCat 开源 VitaBench 2.0:长期动态智能体基准新标杆
人工智能·算法
像我这样帅的人丶你还19 小时前
Java 后端详解(四):分页与搜索
java·javascript·后端
她的男孩19 小时前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解
java·后端·架构