- 浏览: 118696 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
-
Kevin_jiang2011:
能直接在,代码里面配置吗?
Spring+CXF配置HTTP代理访问Internet -
xbiji:
不能用啊!!!!!!!!!!!!!!!!!!!!!!1
JQuery获取页面高度,页面宽度,窗口高度,窗口宽度 -
ben_liang:
# <http-conf:proxyAuthoriza ...
Spring+CXF配置HTTP代理访问Internet -
navy0168:
package com;import java.io. ...
解压缩
转自:http://www.iteye.com/topic/545378
源于作者:jenlp110 的 一道面试题
文章分类:Java编程
一个画图程序 要求打印出 :
int i=5; 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 int i=6 1 2 3 4 5 6 20 21 22 23 24 7 19 32 33 34 25 8 18 31 36 35 26 9 17 30 29 28 27 10 16 15 14 13 12 11
解决方法一:
class snakePrint { static int length = 7; static int value = 1; static int[][] snake = new int[length][length]; static Direction lastDirection = Direction.Right; static enum Direction { Right, Down, Left, Up; } public static void initialArray() { int row = 0, line = 0; for (int c = 0; c < length * length; c++) { snake[row][line] = value; lastDirection = findDirection(row, line); switch (lastDirection) { case Right: line++; break; case Down: row++; break; case Left: line--; break; case Up: row--; break; default: System.out.println("error"); } value++; } } static Direction findDirection(int row, int line) { Direction direction = lastDirection; switch (direction) { case Right: { if ((line == length - 1) || (snake[row][line + 1] != 0)) direction = direction.Down; break; } case Down: { if ((row == length - 1) || (snake[row + 1][line] != 0)) direction = direction.Left; break; } case Left: { if ((line == 0) || (snake[row][line - 1] != 0)) direction = direction.Up; break; } case Up: { if (snake[row - 1][line] != 0) direction = direction.Right; break; } } return direction; } public static void main(String[] args) { initialArray(); // display..... for (int i = 0; i < length; i++) { for (int j = 0; j < length; j++) { System.out.print(snake[i][j] + " "); } System.out.println(); } } }
解决方法二:
static void main(String args[]){ int N=5; int a[][]=new int[N][N]; int i=0,j=0; int count=1; for(i=0;i<N;i++){ for(j=0;j<N;j++){ a[i][j]=0; } } i=0; j=0; for(int k=0;k<=N/2;k++){ i=k; j=k; for(i=k;i<N-k;i++){ a[j][i]=count; count++; } i=N-k-1; for(j=k+1;j<N-k;j++){ a[j][i]=count; count++; } j=N-k-1; for(i=N-k-2;i>=k;i--){ a[j][i]=count; count++; } i=k; for(j=N-k-2;j>=1+k;j--){ a[j][i]=count; count++; } } for(i=0;i<N;i++){ for(j=0;j<N;j++){ System.out.print(a[i][j]+" "); } System.out.println(); } }
方法三:
<PRE class=java name="code">/* * int baseNum=i 1 2 3 ... i 4i-4 (4i-4)+1 ... (4i-4)+(i-2) i+1 ... ... ... ... i+2 ... (4i-4)+[3(i-2)-2] ... (4i-4)+(i-2)+(i-2-1) ... 3i-2 3i-3 ... 2i i+(i-1) */ /** * * @author */ public class PrintSnakeNumberSquare { public static void printN(int baseNum){ System.out.println("int baseNum="+baseNum); for(int i=0;i<baseNum;i++){ printN_M(baseNum,i,0); System.out.println(); } } /** * 打印baseNum宽度的第row行 * @param baseNum:打印正方形的边长 * @param row:打印正方形的第 row 行 * @param outNumber :这个正方形外面层数所占用的数字个数,最外面一层此值为0; * 长度为n的正方形占用4*n-4个数字,第i层递归需传入前i-1层所占数字总和。 */ public static void printN_M(int baseNum,int row,int outNumber){ if(row==0){//如果是第一行 for(int i=1;i<=baseNum;i++){ System.out.format("%3s",i+outNumber); } return ; } if(row==(baseNum-1)){//如果是最后一行 for(int i=(3*baseNum-2);i>=2*baseNum-1;i--){ System.out.format("%3s", i+outNumber); } return; } //row 如果不是第一行或者最后一行,则可以分为三部分 // 边长为baseNum正方形第row行的第一个数 ,边长为baseNum-2的第row-1行 ,边长为baseNum正方形的第row行的最后一个数 //print first number of the row System.out.format("%3s",4*baseNum-3-row+outNumber); //print middle part of the row by recursive print int nextBaseNum=baseNum-2; int nextRow=row-1; if(nextBaseNum>0&&nextRow>=0){ printN_M(nextBaseNum,nextRow,outNumber+4*baseNum-4); } //print last number of the row System.out.format("%3s",baseNum+row+outNumber); } public static void main(String[] args){ PrintSnakeNumberSquare.printN(3); PrintSnakeNumberSquare.printN(4); PrintSnakeNumberSquare.printN(5); PrintSnakeNumberSquare.printN(7); } }</PRE> <PRE class=java name="code">int baseNum=3 1 2 3 8 9 4 7 6 5 int baseNum=4 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 int baseNum=5 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 int baseNum=7 1 2 3 4 5 6 7 24 25 26 27 28 29 8 23 40 41 42 43 30 9 22 39 48 49 44 31 10 21 38 47 46 45 32 11 20 37 36 35 34 33 12 19 18 17 16 15 14 13 </PRE>
我写的解决方法:
import java.util.*; public class MyPrint { public static void main(String[] args)throws Exception{ int lenght = 5 ; int initV = 1; if(args.length>=1){ lenght = Integer.parseInt(args[0]); } if(args.length>=2){ initV = Integer.parseInt(args[1]); } NumPrint m = new NumPrint(); m.sort( lenght,initV); } } class NumPrint { public static final int right = 0; public static final int down = 1; public static final int left = 2; public static final int up = 3; boolean islast = false; int[][] arr; public void sort(final int length, int initV){ arr = new int[length][length]; arr[0][0] = initV; int len = length; Map<String, Integer> map = fz(right, len-1, 0, 0, arr); len --; int ward = right; int cou=1; while(len>0){ ward = (ward+1)%4; map = fz(ward, len, map.get("x"), map.get("y"),arr); if(cou++==2){ len--; cou=1; } } print(); } private Map<String, Integer> fz(int ward, int n, int x, int y, int[][] a){ Map<String, Integer> map = new HashMap<String, Integer>(); switch(ward){ case right: while(n>0){ a[x][++y] = a[x][y-1]+1; n--; } case down: while(n>0){ a[++x][y] = a[x-1][y]+1; n--; } case left: while(n>0){ a[x][--y] = a[x][y+1]+1; n--; } case up: while(n>0){ a[--x][y] = a[x+1][y]+1; n--; } } map.put("x",x); map.put("y",y); return map; } private void print(){ int length = arr.length; for(int i=0;i<length;i++){ for(int j=0; j<length; j++){ System.out.print(arr[i][j]+"\t"); } System.out.println(); } } }
发表评论
-
Java网站
2010-12-11 02:15 710转自:http://txxm.iteye.com/blog/5 ... -
一些反射常用的工具类
2010-09-17 13:59 1669拷贝属性: 1.org.apache.commons.bean ... -
Java安全管理器
2010-08-17 11:00 1631转:http://yuanyong.iteye.com ... -
验证码
2010-07-30 10:40 1119转自:http://flattop.iteye.com/blo ... -
Web前端开发性能优化
2010-07-28 11:01 958参考资料:http://developer.yahoo.com ... -
比较java写text文件的性能
2010-07-20 11:13 1012转自:http://hi.baidu.com/shmily_s ... -
dom4j读取xml:转http://shaqiang32.javaeye.com/blog/246539
2010-06-25 16:52 883SAXReader reader = new SAXRea ... -
反射-调用有参数和无参数的方法
2010-06-19 13:48 9115package com.cn.service; /** ... -
excel导出2
2010-02-05 12:37 906使用POI生成Excel文件,可以自动调整excel列宽等 ... -
多线程-条件变量: 转自:http://huanyue.javaeye.com/blog/560975
2010-01-14 17:56 688条件变量是Java5线程中很重要的一个概念,顾名思义,条件变量 ... -
多线程交互-障碍器 转自:http://huanyue.javaeye.com/blog/560978
2010-01-14 17:24 790Java5中,添加了障碍器类,为了适应一种新的设计需求,比如一 ... -
线程交互-转自:http://huanyue.javaeye.com/blog/560904
2010-01-14 17:13 896一、线程交互的基础知识 SCJP所要求的线程交互知识点需要 ... -
递归计算向非递归计算转换模板-转自http://mingliangfeng.javaeye.com/blog/201084
2010-01-14 13:36 877最近由于工作上的需要,研究了一下递归计算向非递归计算的转换问题 ... -
excel 导出
2010-01-11 15:06 1136public static InputStream Expor ...
相关推荐
云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备云计算面试题之ELK面试题,运维工程师必备...
JavaOOP面试题 Java集合/泛型面试题 Java异常面试题 Java中的IO与NIO面试题 Java反射面试题 Java序列化面试题 Java注解面试题 多线程&并发面试题 JVM面试题 Mysql面试题 Redis面试题 Memcached面试题 MongoDB面试题 ...
大数据面试题V3.0完成了。共523道题,679页,46w+字,来源于牛客870+篇面经。 主要分为以下几部分: Hadoop面试题:100道 Zookeeper面试题:21道 Hive面试题:47道 Flume面试题:11道 Kafka面试题:59到 HBase面试题...
2022java面试题、JVM面试题、多线程面试题、并发编程、Redis面试题、MySQL面试题、Java2022面试题、Netty面试题、Elasticsearch面试题、Tomcat面试题、Dubbo面试题、Kafka面试题、Linux面试题、2021面试题、java面试...
最全的j2EE面试题,题量大、经典,是我面试的整理试题 1、java笔试题大集合 2、各个公司面试题 3、J2EE初学者面试题 4、J2EE面试题(打码查错题) 5、java_华为笔试题 6、java常见面试题 7、java程序员面试宝典 8、...
文件中包含了本人最近在网上总结的面试题,有java面试题,jq面试题,jsp、servlet、ajax面试题,mysql面试题,oracle面试题,redis教案,也有最近时间总结的公司面试题,涉及的层面虽然不是很多,但是应对面试 应该...
2023年最新版--Java+最常见的+200++面试题汇总+答案总结汇总 阿里百度美团面试题合集 大数据面试题 100道 多线程面试59题(含答案) 最新JAVA面试题总结之基础/框架/数据库/JavaWeb/Redis BIO,NIO,AIO,Netty面试题 ...
(完整版)运维面试题(含答案).pdf(完整版)运维面试题(含答案).pdf(完整版)运维面试题(含答案).pdf(完整版)运维面试题(含答案).pdf(完整版)运维面试题(含答案).pdf(完整版)运维面试题(含答案).pdf(完整版)运维面试题...
Java 集合、JVM、多线程、并发编程、设计模式、SpringBoot、SpringCloud、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、...React、JavaScript、Android 大数据、阿里巴巴等大厂面试题等、等技术栈...
笔试面试题 一道面试题关于信息系统的问答和注意事项 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的...
【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】...
面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....
前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; 前端面试题:前端框架面试题大全; ...
【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题【BAT必备】dubbo面试题...
现在五块钱的付出,将来收获的可能是一份心仪的offer,干货满满,建议下载。...友情提示:本套面试题包括面试题900题+公司实战面试题400问,面试题已经整理好答案,公司题由于新收录没有答案,但非常有参考价值。
Python面试题及答案共70道Python面试题及答案共70道Python面试题及答案共70道Python面试题及答案共70道Python面试题及答案共70道Python面试题及答案共70道Python面试题及答案共70道Python面试题及答案共70道Python...
java高级软件工程师面试题大全及答,一些公司的面试题,对于正在找工作应对面试的朋友或许有点帮助。java高级软件工程师面试题大全及答,一些公司的面试题,对于正在找工作应对面试的朋友或许有点帮助
Java面试题、JVM面试题、多线程面试题、并发编程、设计模式面试题、SpringBoot面试题、SpringCloud面试题、MyBatis面试题、Mysql面试题、VUE面试题、算法面试题、运维面试题。 收集汇总各行业笔试or编程题解题思路 ...
ERP工程师面试题ERP工程师面试题ERP工程师面试题ERP工程师面试题
Java面试题,J2EE面试题,.net面试题,PHP面试题,数据库面试题,英语面试,外企面试,软件测试面试题,Python面试题,Oracle面试题,MySql面试题,Web开发面试题,Unix面试题,程序员面试,网络技术面试题,网络安全面试题,Linux...