java算法小知识练习(二)
话不多说,直接上题:
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。
有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
思路:创建两个char型数组,分别存放 a,b,c 和x,y,z.然后分别遍历 这两个数组,取出符合条件的值,
代码如下:
public static void main(String[] args) {
char[] AArray = { 'a', 'b', 'c' };
char[] BArray = { 'x', 'y', 'z' };
for (int i = 0; i < AArray.length; i++) {
for (int j = 0; j < BArray.length; j++) {
if((AArray[i]=='a' && BArray[j]=='x')){
continue;
}else if(AArray[i]=='a' && BArray[j]=='y'){
continue;
}else if((AArray[i]=='c' && BArray[j]=='x')||(AArray[i]=='c' && BArray[j]=='z')){
continue;
}else if((AArray[i]=='b' && BArray[j]=='z')||(AArray[i]=='b' && BArray[j]=='y')){
continue;
}else{
System.out.println("对局情况为 :"+AArray[i]+" PK "+BArray[j]);
}
}
}
}
打印结果为:
对局情况为 :a PK z
对局情况为 :b PK x
对局情况为 :c PK y
这种方法就是根据给定的条件排除 他不可能对战的情况,剩下的二就是他对战的情况了,
然我在网上又看到了一种写法,这种写法貌似看着更简单一点。代码如下:
public static void main(String[] args) {
char i,j,k;
for(i='x';i<='z';i++){
for(j='x';j<='z';j++){
if (i != j){
for (k = 'x'; k <= 'z'; k++) {
if (i != k && j != k) {
if (i != 'x' && k != 'x' && k != 'z')
System.out.println("A PK "+i+",B PK "+ j+",C PK"+ k);
}
}
}
}
}
}
打印结果为:A PK z,B PK x,C PK y
这种方法貌似有点投机取巧了,也就是说x,y,z是连着 的,万一不是连着的呢,这种方法貌似就不可取了,
但要是真是为了解决题而言,第二种不失为一种好的解决办法。
java算法小知识练习(二)的更多相关文章
- java算法小知识练习
偶尔翻开了以前的练习题,不自觉又想随手敲一遍,虽然有些思想依然是那么老套,但毕竟也算是对知识的巩固 了. 一.题目:有1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 具体 ...
- Java基础小知识(一)
序言:“不积跬步,无以至千里.不积小流,无以成江海.”每一个庞大的知识架构都是由无数个小知识点慢慢积累起来的,没有量变的积累,就没有质变上的飞跃,成功往往离不开积累. 今天就和大家分享一些我在学习J ...
- java基础小知识
1.1常量: 基本数据类型常量 字符常量 整数常量的表现形式:一进制的形式来表示(二进制,八进制,十进制,十六进制) 生活中:十进制(0-9) ,星期(七进制(0-6)) ,时间(十二进制(0-11 ...
- Java基础小知识笔记
1. Integer转进制的一个类2. toBinaryString,toOctalString,toHexString.(转为二进制,八进制,十六进制的方法)3. 如果·数据的大小没有超过byte/ ...
- Java多线程基础知识(二)
一. Java线程具有6种状态 NEW 初始状态,线程被创建,但是还没有调用start方法. RUNNABLE 运行状态,java线程将操作系统中的就绪和运行两种状态笼统的称作进行中. BLOCKE ...
- Java~时间戳小知识
大叔对java时间戳使用的总结 Java里的Date对象有方法setTime,主要是将一个时间戳转成一个日期对象,而这个时间戳的标准是unix标准,即当前时间与1970/1/1相差的毫秒数,记得是毫秒 ...
- java反射基础知识(二)
1. 了解 Java 中的反射 1.1 什么是 Java 的反射 Java 反射是可以让我们在运行时获取类的函数.属性.父类.接口等 Class 内部信息的机制.通过反射还可以让我们在运行期实例化对象 ...
- Java入门小知识
软件开发什么是软件? 一系列按照特定顺序组织的计算机数据和指令的集合什么是开发? 制作软件 人机交互 软件的出现实现了人与计算机之间的更好的交互交互方式 图形化界面:这种方式简单直观,使用者 ...
- js--Ajax的小知识(二):处理ajax的session过期的请求
问题的产生: 现如今Ajax在Web项目中应用广泛,几乎可以说无处不在. 有时会碰到这样个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax ...
随机推荐
- thymeleaf中的th:assert用法
th:assert 断言标签 th:assert属性可以指定一个以逗号分隔的表达式对其进行评估并生产适用于每一个评价,如果不抛出异常 <div th:assert="${onevar} ...
- POJ 3312 Mahershalalhashbaz, Nebuchadnezzar, and Billy Bob Benjamin Go to the Regionals (水题,贪心)
题意:给定 n 个字符串,一个k,让你把它们分成每组k个,要保证每组中每个字符串长度与它们之和相差不能超2. 析:贪心策略就是长度相差最小的放上块. 代码如下: #pragma comment(lin ...
- How to organize the Template Files in C++
Normally you put class definitions in a header file and method definitions in a source file. Code th ...
- Http Header Content-Disposition
Content-Disposition用途 Content-Disposition是为了实现服务器下载文件功能,并可提供文件名. Content-Disposition格式 content-dispo ...
- Unity3D之Mecanim动画系统学习笔记(八):Animator Layers(动画分层)
解决什么问题? 动画分层可以用来解决什么样的问题呢?试想一下如果你要开发一款第三人称的射击游戏,那么肯定是希望身体的动画分为上下两部分,上方根据瞄准的位置和是否射击进行动画播放,下方根据移动播放动画. ...
- java 方法调用绑定--《java编程思想》学习笔记
将一个方法调用同一个方法主体关联起来,就是绑定. 绑定分两种 :前期绑定 和 后期绑定 . 绑定------------- | -----前期绑定-------编译期绑定 { static , fin ...
- 【转】2013年中国IT业10大公司
转自:http://www.chinaz.com/news/2013/1217/331446.shtml?zyy 1.最得志的公司:小米 在2013年,再没有一家公司像小米这样志得意满,即便看看所有的 ...
- 基础数据结构 之 栈(python实现)
栈是编程开发中的两种较为简单的数据结构.栈和队可用于模拟函数的递归.栈的特点是后进先出.其常用操作包括:出栈,入栈等.在出栈前,需判断栈是否为空.在入栈时,需判断栈是否已满. 下面给出一个用pytho ...
- android 用ListView实现表格样式
原文:http://blog.csdn.net/centralperk/article/details/8016350 效果图: 源码下载地址:http://download.csdn.net/det ...
- LINUX C++ 技术博客
http://blog.csdn.net/pcliuguangtao/article/category/676422