掏空菱形的java代码 java镂空菱形

java空心菱形算法

这样的代码光是看是很难看明白的,自己举个例子简单地在纸上写一写画一画,就比较容易明白了。

创新互联拥有10余年成都网站建设工作经验,为各大企业提供成都网站设计、做网站服务,对于网页设计、PC网站建设(电脑版网站建设)、成都App制作、wap网站建设(手机版网站建设)、程序开发、网站优化(SEO优化)、微网站、主机域名等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了很多网站制作、网站设计、网络营销经验,集策划、开发、设计、营销、管理等网站化运作于一体,具备承接各种规模类型的网站建设项目的能力。

假定size=5,可以想像一下菱形的形状,size/2+1=3,按以上代码的逻辑来看,就是先处理上面的3行,然后处理下面剩下的2行。

处理上面3行的时候,每一行需要根据行数分别输出*和空格。先看第1行,i==0.

for (int i = 0; i size / 2 + 1; i++) {

for (int j = size / 2 + 1; j i + 1; j--) {

System.out.print(" ");// 输出左上角位置空白

}

这段代码此时的i==1,内层循环走完以后,会输出2次空格(j==3,j==2时),

然后依次往下走。

不得不说,上面的代码写的太复杂了,这么多for循环,看着好费劲的说~~

java 怎样写出一个菱形程序?空心和实心

java打印菱形通过二维数组来打印,实例如下:

int hangshu = 11;

int yiban = hangshu / 2 + 1;

int yibanduo = hangshu / 2;

System.out.println("空心菱形:");

for(int k = 1;k = yiban;k++){

for(int i = 1;i = (yiban - k);i++){

System.out.print(" ");

}

System.out.print("*");

for(int i = 1;i = ( (k - 2) * 2 + 1);i++){

System.out.print(" ");

}

if(k != 1){

System.out.print("*");

}

System.out.println();

}

for(int k = yibanduo;k =1;k--){

for(int i = 1;i = (yiban - k);i++){

System.out.print(" ");

}

System.out.print("*");

for(int i = 1;i = ( (k - 2) * 2 + 1);i++){

System.out.print(" ");

}

if(k != 1){

System.out.print("*");

}

System.out.println();

}

System.out.println("实心菱形:");

for(int i = 1;i = hangshu;i++){

if(i = hangshu/2 + 1){

for(int k = 1;k = hangshu/2 + 1- i;k++){

System.out.print(" ");

}

for(int k = 1;k = i;k++){

System.out.print("* ");

}

System.out.println();

}else{

for(int k =1;k = (i -(hangshu/2 + 1));k++){

System.out.print(" ");

}

for(int k = 1;k = (2 *(hangshu/2 + 1) - i);k++){

System.out.print("* ");

}

System.out.println();

}

}

结果如下:

java中如何用星号如何输出个空心的菱形

import java.util.Scanner;

public class Diamond {

public static void main(String[] args) {

int length=1;//存储菱形的边长的变量

Scanner sc =new Scanner(System.in);//输入数据的扫描对象

System.out.println("请输入菱形的边长:");

length = sc.nextInt();//获取输入的边长数值

/*打印菱形的上半部分三角形 行数为length行*/

for (int i=1; i=length;i++) {//需要打印的行数

for(int j=1;j=length-i;j++){//打印左边空白的区域,随行递减1

System.out.print(" ");

}

for(int k=1;k=2*i-1;k++){//打三角形的区域

if(k==1||k==2*i-1){//空心的获取 除每行第一个以及最后一个 外其余为空白

System.out.print("*");

}else{

System.out.print(" ");

}

}

System.out.println();

}

/*打印菱形的下半部分三角形 中间行公用 故行数为length-1*/

for (int i = length-1;i0;i--){

for(int j=1;j=length-i;j++){

System.out.print(" ");

}

for(int k=1;k=2*i-1;k++){

if(k==1||k==2*i-1){

System.out.print("*");

}else{

System.out.print(" ");

}

}

System.out.println();

}

}

}

Java编程在控制台直接用循环输出空心菱形(7行)

可以这么分析:空心菱形是将实心菱形挖空,而挖空的实质是去掉每行除了第一行和最后一行之外的" *".对实心菱形而言,用i控制行数,而其每一行都由两段连续的符号集组成(一段是只由空格组成的序列,另一段则由空格+星号排列而成),因此在每一行里,我们可用两个循环分别实现这两段符号集,每一行结束要记得换行.在此基础下上,我们只要加个"只输出每一行的首列及其最后一列的空格+星号,而其它位置用两个空格代替"这样的条件即可实现空心菱形.具体实例如下: public class Demo{ public static void main(String[] args){ int i,j; for(i=1;i=4;i++) //空心菱形上三角部分 { for(j=1;j=40-2*i;j++) System.out.print(" "); for(j=1;j=2*i-1;j++) if(j==1||j==2*i-1) System.out.print(" *"); else System.out.print(" "); System.out.println(); } for(i=3;i=1;i--) //空心菱形除了上三角的其余部分 { for(j=1;j=40-2*i;j++) System.out.print(" "); for(j=1;j=2*i-1;j++) if(j==1||j==2*i-1) System.out.print(" *"); else System.out.print(" "); System.out.println(); } } }


网站名称:掏空菱形的java代码 java镂空菱形
分享地址:http://pwwzsj.com/article/dohgsdd.html