2019.6.21:空心菱形
思路:以左上角为坐标原点,意思条边为直线,然后以每条直线构造出直线方程
在该直线方程的点就打印出“*”
不在的就打印空格
核心代码如下:
System.out.println(“请输入菱形每条边的“”的个数:");
Scanner read=new Scanner(System.in);
int temp=read.nextInt()-1;
for (int i = 0; i <=temp2; i++) {
for (int j = 0; j <= temp2; j++) {
if (i+jtemp||j-itemp||i-jtemp||i+j(temp3)) {
System.out.print(”*");
}
else
{
System.out.print(" ");
}
}
System.out.println();
}
可运行代码:
package homework;
import java.util.Scanner;
public class lingxing {
public static void main(String[] args) {
// TODO Auto-generated method stub
// int i,j,k;
// for(i=1;i<=5;i++){
// for(j=1;j<=5-i;j++)
// System.out.print(" ");
// for(k=1;k<=2*i-1;k++)
// System.out.print("*");
// System.out.println("");}
//
// for(i=1;i<=4;i++){
// for(j=1;j<=i;j++)
// System.out.print(" ");
// for(k=1;k<=9-2*i;k++)
// System.out.print("*");
// System.out.println("");}
// int lay=5;
// for (int i=1;i<=lay;i++) //i表示空心菱形上半部分行数;类似于金字塔行数
// {
// for (int j=1;j<=lay-i;j++) //j表示每行"*"号前面的空格数
// {
// System.out.print(" ");
// }
// for (int k=1;k<=2*i-1;k++) //k表示每行要打印的"*"号
// {
// if (k==1||k==2*i-1) //如果要打印的"*"是第一个或最后一个则打印出来
// {
// System.out.print("*");
// }
// else
// System.out.print(" "); //如果要打印的"*"不是第一个或最后一个则打印空格
// }
// System.out.println();
// } //以上打印出来的是空心菱形的上半部分
// for (int i=1;i<=lay-1;i++) //空心菱形下半部分的行数为lay-1行;比如上半部分4行,则下半部分为3行才能构成菱形
// {
// for (int j=1;j<=i;j++) //每行空格数
// {
// System.out.print(" ");
// }
// for (int k=1;k<=2*(lay-i)-1;k++) //下半部分每行总的"*"数
// {
// if (k==1||k==2*(lay-i)-1) //如果"*"处在第一和最后一位则打印出来
// {
// System.out.print("*");
// }else
// System.out.print(" "); //如果"*"不是处在第一和最后一位则打印出空格
// }
// System.out.println();
// }
System.out.println("请输入菱形每条边的“*”的个数:");
Scanner read=new Scanner(System.in);
int temp=read.nextInt()-1;
for (int i = 0; i <=temp*2; i++) {
for (int j = 0; j <= temp*2; j++) {
if (i+j==temp||j-i==temp||i-j==temp||i+j==(temp*3)) {
System.out.print("*");
}
else
{
System.out.print(" ");
}
}
System.out.println();
}
}
}
运行结果:
请输入菱形每条边的“*”的个数:
5
*
* *
* *
* *
* *
* *
* *
* *
*