面试基础题系列(一)java 打印 ,空心菱形
2013-10-18 20:38
609 查看
最近要参加面试,比较 之前翻译过一篇文章《通过回顾基础来加强你的编程技能》,自己也要巩固一下基础,也不至于面试这一关而无缘工作机会。
老师说过面试很有可能考打印空心菱形,考验你的逻辑和对for循环的理解,所以在网上搜索下,再加上自己的理解,就有了下面针对空心菱形的代码。大家多多交流,共同进步哈~
以层数5为例:
分析的思路为下图:
所以我们的目标就可以分解为两个部分:空格的数量和*的数量
打印部分也可以分为两部分:以菱形的中间部分为界线,上半部分和下半部分。
输出为:
输出为:
把两个部分放在一起就是下面的效果:
最后想看其他的菱形打印方法,可以点击下面的地址:http://hb0308513.iteye.com/blog/698114
老师说过面试很有可能考打印空心菱形,考验你的逻辑和对for循环的理解,所以在网上搜索下,再加上自己的理解,就有了下面针对空心菱形的代码。大家多多交流,共同进步哈~
以层数5为例:
分析的思路为下图:
所以我们的目标就可以分解为两个部分:空格的数量和*的数量
打印部分也可以分为两部分:以菱形的中间部分为界线,上半部分和下半部分。
上半部分:
//空心菱形 //Hollow diamond public static void hollowDiamond(){ try{ BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入菱形的层数(>=3的整数):"); String hd=buf.readLine(); int layer=Integer.parseInt(hd); //保证了菱形的特性,即层数为奇数 //层数以5为例 if(layer%2==0) { layer=layer-1; } for(int i=0;i<layer;i++){ if(i<layer/2+1){ //空格规律 //1->3,2->2,3->1,4->0 for(int k=0;k<layer/2+1-i;k++){ System.out.print(" "); } //打印*规律 //i的取值(0,1,2) //j的取值,分别是i=0,i=1,i=2的时候 // 1 // 123 //12345 for(int j=1;j<=(i+1)*2-1;j++){ if(i==0){ System.out.print("*"); }else{ if(j==1 || j==(i+1)*2-1){ System.out.print("*"); }else{ System.out.print(" "); } } } System.out.println();
输出为:
下半部分:
}else{ //下半部分菱形,和上面正好相反
//i的取值i=3,i=4 //3->2,4->3 for(int k=0;k<=i-(layer-(layer/2+1));k++){ System.out.print(" "); } for(int j=1;j<=(layer-i)*2-1;j++){ if(i==layer-1){ System.out.print("*"); }else{ if(j==1 || j==(layer-i)*2-1){ System.out.print("*"); }else{ System.out.print(" "); } } } System.out.println(); } } }catch(Exception e){ e.printStackTrace(); } }
输出为:
把两个部分放在一起就是下面的效果:
最后想看其他的菱形打印方法,可以点击下面的地址:http://hb0308513.iteye.com/blog/698114
相关文章推荐
- 面试基础题系列(二)java 打印 ,杨辉三角
- 如何使用JAVA打印菱形(三)空心菱形基础上加上对角线
- [Java基础]打印空心菱形
- 面试基础题系列(二)java 打印 ,杨辉三角
- Java基础知识强化07:打印出空心菱形
- java 打印输出空心菱形
- [置顶] java面试系列--J2SE基础(七)
- Java打印空心菱形,非常简单的操作
- Java面试系列【final、finally、finalize区别】-finalize是什么,基础篇
- [置顶] java面试系列--J2SE基础(二)
- Java控制台打印一个空心菱形
- Java基础应用之循环控制(for循环输出空心的菱形)
- 用Java打印空心菱形
- C语言基础用基本的循环语句打印实心和空心菱形、九九乘法表
- java 实现打印输出一个空心菱形
- [置顶] java面试系列--J2SE基础(十)
- [置顶] java面试系列--J2SE基础(一)
- Java面试系列--java基础
- java打印菱形,空心菱形
- 【Java面试系列】语言基础(一)