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 ...
随机推荐
- STC89C52RC片内资源介绍
STC89C52RC片内有:用户应用程序区(AP)8K,地址0000h-1FFFh. 数据flash区(EEPROM)4K,2000h-2FFFh ISP引导区空间1K/2k/4k. RAM 512B ...
- AutoCAD.NET二次开发:扩展数据之XData
结果缓存——ResultBuffer 结果缓存即 Autodesk.AutoCAD.DatabaseServices.ResultBuffer 类型,使用 ResultBuffer 对象时需要提供一个 ...
- C C++实现创建目录
下面代码是C.C++可以使用的创建目录的函数及头文件,这是引用的opencv,haartraining中的一种方式. #include <direct.h> //不同系统可能不一样,这是在 ...
- HDU 5521 Meeting (最短路,dijstra)
题意:有N个点,两个人,其中一个人住在点1,另一个人住在点n,有M个点集,集合内的数表示任意两点的距离为dis ,现在问,如果两个人要见面, 需要最短距离是多少,有哪几个点能被当成见面点. 析:分别对 ...
- Android中回调接口的使用
MainActivity如下: package cn.testcallback; import android.os.Bundle; import android.app.Activity; /** ...
- C++多态实现(虚函数,成员函数覆盖、隐藏)
// 1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using namespace ...
- Myeclipse 10.x 安装Aptana3.2 插件
安装步骤: 1.下载aptana3.2 Eclipse Plugin插件. 下载地址:http://update1.aptana.org/studio/3.2/024747/index.html 2. ...
- window.parent != window 解决界面嵌套问题
页面在被嵌套的时,效果:,,如果用户点击“刷新”,该问题即可解决. 如果想通过代码解决的话,这个问题属于客户端的问题,不是服务器端的问题. 如果直接写:window.location.href = “ ...
- [前端JS学习笔记]JavaScript CallBack
一.概念介绍 CallBack : "回调" . 在spring优秀框架回调无处不在, 回调的运用场景很多, 如 swt事件监听.netty等.它的主要作用是提高程序执行效率, 一 ...
- JavaEE通过response实现请求重定向
请求重定向指的是一个web资源收到客户端请求后,通知客户端去访问另外一个web资源,这称之为请求重定向.302状态码和location头即可实现重定向. 请求重定向最常见的应用场景就是用户登录. 下面 ...