版权声明:转发者请注明地址哦-----kuls的博客-一个正在疯狂学习的大学生- https://blog.csdn.net/qq_36547531/article/details/82143722
最近发现算法方面还是一脸懵逼,所以来写个笔记。
算法真的是建立在数学之上的,等下大家就知道了。
点击我关注博主的小网站
java编写菱形以及空心菱形,这个就是算法的入门吧(我这么认为的)
点击我关注博主的小网站
开始了啊!!!
首先来分析吧
我们要达到的效果就是这样!
首先分析一下实心的吧
先分析上半段(我们把整个分为两个部分,第一个部分为前四行,第二个部分为底下三行)
我们来找每行的规律:
第一行有一个 *
这个 * 前面有三个空格
第二行有两个 *
前面有两个空格
…….
点击我关注博主的小网站
依次类推
我们可以找出每一行空格和*的出现规律
空格数=上半段总行数-第几行的行数
* 数=2*第几行的行数-1
下半段的话就是相反的,仔细看下代码吧
得知规律后我们来写下吧。
创建两个方法
public static void starsUP() {
int j;
//m为上半截行数
for(int m=1;m<=4;m++) {
//j为每一行的行数
for(j=1;j<=4-m;j++) {
System.out.print(" ");
}
for(j=1;j<=2*m-1;j++) {
System.out.print("*");
}
System.out.println();
}
}
public static void starsDown() {
int j;
//m为下半截行数
for(int m=3;m>=1;m--) {
//j为每一行的行数
for(j=1;j<=4-m;j++) {
System.out.print(" ");
}
for(j=1;j<=2*m-1;j++) {
System.out.print("*");
}
System.out.println();
}
}
实心写完后,写空心,我直接上代码吧,就是添加了一个if else 语句。
public static void starsUP() {
int j;
//m为上半截行数
for(int m=1;m<=4;m++) {
for(j=1;j<=4-m;j++) {
System.out.print(" ");
}
for(j=1;j<=2*m-1;j++) {
//主要就是添加了以下的if语句
if (j==1||j==(2*m-1)) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
}
public static void starsDown() {
int j;
//m为上半截行数
for(int m=3;m>=1;m--) {
for(j=1;j<=4-m;j++) {
System.out.print(" ");
}
for(j=1;j<=2*m-1;j++) {
//主要就是添加了以下的if语句
if (j==1||j==(2*m-1)) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
}
好了OK
点击我关注博主的小网站