黑马程序员技术交流社区
标题:
关于菱形的打印
[打印本页]
作者:
空心祭
时间:
2014-2-21 18:27
标题:
关于菱形的打印
要求:打印一个空心菱形
思路:可以分解成四个图形来打印
上边左边空格部位
上面右边星跟空格部位
下边空格部位
下边右边星跟空格部位
class Demo7
{
public static void main(String[] args)
{
set(7);
}
public static void set(int num)
{
for (int x =0; x <num ;x++ )
{
for (int y =x; y<num-1 ;y++ )//打印星号左边的空格三角形
{
System.out.print(" ");
}
for (int z = 0; z<=x ;z++ )//打印星号的等腰三角形的两个星号边
{
if (z==0 || z==x)
{
System.out.print("*"+" ");
}
else
System.out.print(" ");
}
System.out.println();
}
for (int m =0; m <num-1 ;m++ )
{
for (int n =0; n<=m ;n++ )//打印下边星号左边的空格三角形
{
System.out.print(" ");
}
for (int h =m; h<num-1 ;h++ )//打印下面的等腰三角形的两个星号边
{
if (h==m || h==num-2)
{
System.out.print("*"+" ");
}
else
System.out.print(" ");
}
System.out.println();
}
}
}
这是我写的代码 但是这样写太墨迹,太麻烦了 有没有更简便的方式 可以简化循环嵌套的次数的
作者:
osully
时间:
2014-2-21 21:37
闲的没事 刚学到二维数组 就顺便练习下 嘿嘿!!!
package com.itheima.com;
/**
* 二维数组打印空心菱形.
*
* @author WB
*
*/
public class LingXing {
public static void main(String[] args) {
lingXing(5);
}
static void lingXing(int num) {
int i = num, j = num - 1;//初始化一个脚标值
char[][] arr = new char[num * 2 - 1][num * 2 - 1];//定义一个二维数组,用来存放
for (int x = 0; x < arr.length; x++) { //这个是打印左侧
if (x < num) {
i = i - 1;
arr[x][i] = '*';
} else {
i = i + 1;
arr[x][i] = '*';
}
}
for (int y = 1; y < arr.length - 1; y++) {//这个打印右侧
if (y < num) {
j = j + 1;
arr[y][j] = '*';
} else {
j = j - 1;
arr[y][j] = '*';
}
}
printArr(arr);
}
static void printArr(char[][] arr) { //打印数组函数
for (int x = 0; x < arr.length; x++) {
for (int y = 0; y < arr.length; y++)
System.out.print(arr[x][y]);
System.out.println();
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2