栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2013 Java B组 省赛解析及总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2013 Java B组 省赛解析及总结

目 录
  • 一、世纪末的星期
  • 二、马虎的算式

一、世纪末的星期

标题: 世纪末的星期
未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?
请回答该年份(只写这个4位整数,不要写12月31等多余信息)

【解析】:暴力、枚举
使用Calendar类构造日历,遍历找到12月为31的是星期天的那一年

 Calendar calendar=Calendar.getInstance();
for(int i=1999;i<5000;i+=100) {
	calendar.set(Calendar.YEAR,i);							//设置年份		
	calendar.set(Calendar.MONTH,11);						//设置月,0开始
	calendar.set(Calendar.DAY_OF_MONTH,31);					//设置日,1开始,DAY_OF_MONTH
	if(calendar.get(Calendar.DAY_OF_WEEK)==1) {				//判断这一天是不是星期天
		System.out.println(calendar.get(Calendar.YEAR));
		break;
	}
}
二、马虎的算式

假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)
能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?

【解析】暴力、枚举

int cnt=0;
//枚举所有可能
//数字不相同(如果相同则跳过)
for (int n1 = 1; n1 < 10; n1++)
	for (int n2 = 1; n2 < 10; n2++) {if (n2 == n1) continue;	//也可以 if(b != a)则进行下一个循环
		for (int n3 = 1; n3 < 10; n3++) {if(n3==n2||n3==n1) continue;
			for (int n4 = 1; n4 < 10; n4++) {if(n4==n3||n4==n2||n4==n1) continue;
				for (int n5 = 1; n5 < 10; n5++) {if(n5==n3||n5==n2||n5==n1 ||n5==n4) continue;
					if((n1*10+n2)*(n3*100+n4*10+n5)==(n1*100+n4*10+n2)*(n3*10+n5))
						cnt++;
				}}}}
System.out.println(cnt);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/361425.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号