java空心菱形分析+完整代码+函数实现

2019.6.21:空心菱形

 思路:以左上角为坐标原点,意思条边为直线,然后以每条直线构造出直线方程
 在该直线方程的点就打印出“*”
 不在的就打印空格

核心代码如下:
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 <= temp2; j++) {
if (i+jtemp||j-itemp||i-jtemp||i+j(temp
3)) {
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
    *    
   * *   
  *   *  
 *     * 
*       *
 *     * 
  *   *  
   * *   
    *    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值