您的位置:首页 > 大数据 > 人工智能

AIX 程序设计大赛---AIX正方形问题

2007-12-17 10:31 429 查看
AIX 程序设计大赛---AIX正方形问题

[b]作者:成晓旭

[/b]作为“算法及实现”栏目的“抛砖引玉”之作,将自己2年多前实现的一个算法放出来。有一年IBM出了这个Java程序设计竞赛题,当时,自己花晚上时间用Java实现了。

[问题描述]:

任意给定一个正方形,将正方形的各边做n等分,并将相应各点连接成水平或垂直的直线,如果从正方形的左下角(0,0)出发,沿各边线或连接线,自左向右或自下而上的方向,到达正方形的右上角(n,n),请用JAVA程序计算并输出所有可能的路径总数和具体线路.请提供相关JAVA源程序和n=2,3,4时的输出结果。输出结果按以下方式:

以n=1为例:

n = 1

Path1: (0,0) - (0,1) - (1,1)

Path2: (0,0) - (1,0) - (1,1)

Total = 2

[设计简介]

共设计3个类:

AixPoint:正方形问题的低层处理类,抽象正方形问题的每个访问点信息;

AixSquare:正方形问题的核心处理类,抽象正方形算法处理过程;

AixContest:正方形问题的客户调用处理类,抽象正方形问题的应用层。

[算法源码]

AixPoint源码:

package CXXSoft.Aix;
import java.awt.Point;

public class AixPoint extends Point
package CXXSoft.Aix;

import java.awt.Point;
import java.util.Stack;
import java.util.Vector;
import java.util.List;
import CXXSoft.Aix.AixPoint;

public class AixSquare

package CXXSoft.Aix;
import java.awt.Point;
import CXXSoft.Aix.AixSquare;

public class AixContest
...{


public static void main(String[] arg)




...{


System.out.println("AIX知识大赛初赛Java程序设计---AIX正方形问题");






AixSquare asProblem = new AixSquare();


String str="";


for(int i=1;i<=3;i++)




...{


asProblem.setProblemCondition(i,AixSquare.FIRST_MOVE_AHEAD);


asProblem.solveProblemNew();


str += asProblem + " ";


}


System.out.println(str);


System.out.println(" AIX正方形问题---运行结束......");


}


}

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1108610
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: