菱形还算比较简单的图形,主要是观察一下规律,而不要盲目的想着什么拆分成上下两部分,实际上规律很好找。基本上只需要高中的数学知识就可以了,简单的算法然后取绝对值即可!注意行数为正奇数3、5、7、9……,实际上行数也是菱形中间最宽的那一行(空白+菱形)的总数!
实心菱形
先上代码,非常简单:
/**
* 菱形
*/
@Test
public void test9() {
Scanner scanner = new Scanner(System.in);
//行数
int i = scanner.nextInt();
for (int j = 0; j < i; j++) {
// 空白
for (int k = 0; k < Math.abs(i / 2 - j); k++) {
System.out.print(" ");
}
// *
for (int k = 0; k < i - 2 * Math.abs(i / 2 - j); k++) {
System.out.print("*");
}
System.out.println();
}
}
空心菱形
在上面的基础上小小的改动即可:
/**
* 空心菱形
*/
@Test
public void test10() {
Scanner scanner = new Scanner(System.in);
//行数
int i = scanner.nextInt();
for (int j = 0; j < i; j++) {
// 空白
for (int k = 0; k < Math.abs(i / 2 - j); k++) {
System.out.print(" ");
}
// *+空白
for (int k = 0; k < i - 2 * Math.abs(i / 2 - j); k++) {
if (k == 0 || k == i - 2 * Math.abs(i / 2 - j) - 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
大家看代码就能看懂了吧?实在不懂怎么找的可以给我留言!
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
因篇幅问题不能全部显示,请点此查看更多更全内容