Java程序编写 • 【第6章 程序:输出3种菱形】

本章节总结

返回作业目录


第一种:

在这里插入图片描述

代码:

import java.util.Scanner;
public class day10_04 {
	public static void main(String[]args){
    	Scanner a=new Scanner(System.in);     /得到键盘输入
    	
    	for(;;){
       		int sz=a.nextInt();               /菱形的总长度
       		int yiban=(sz+1)/2;               /得到菱形的上半部分长度=总长度+1再/2
上半部分开始
       		for(int j=1;j<=yiban;j++){        /上半部分的循环次数,几次就是几行
       	    	for(int kong=1;kong<=yiban-j;kong++){      /打印空格的次数=上半部分循环总次数-当前循环到了第几行
       	        	System.out.print(" ");
       	    	}
       	    	for(int hua=1;hua<=(j*2)-1;hua++){         /打印*的次数=当前循环到了第几行*2-1
       	    	因为每行多加两个*,所以乘以二
       	        	System.out.print("*");
       	    	}
       	    	System.out.println();         /换行
       		} 
--------------------------------------------------------------------------
下半部分开始
       		int shengyu=sz-yiban;             /得到菱形的下半部分=总长度-上半部分
       		
       		for(int j=1;j<=shengyu;j++){      /下半部分的循环次数,重新开始计数
       	    	for(int kong=1;kong<=j;kong++){            /打印空格的次数=下半部分循环到了第几行
       	        	System.out.print(" ");
       	    	}
       	    	for(int hua=1;hua<=sz-j*2;hua++){          /打印*的次数=菱形的总长度-下半部分循环到了第几行的两倍
       	    	因为每行多减两个*,所以乘以二
       	        	System.out.print("*");
       	    	}
       	    	System.out.println();
      		}
    	}	
	}
}

第二种:

在这里插入图片描述

代码:

import java.util.Scanner;
public class day11_08 {
    public static void main(String[]args){
	    Scanner a=new Scanner(System.in);
   		for(;;){
        	int sz=a.nextInt();
        	int yiban=(sz+1)/2;
        	for(int j=1;j<=yiban;j++){
            	for(int i=1;i<=yiban-j;i++){
                	System.out.print(" ");
            	}
            	for(int i=1;i<=j*2-1;i++){
                	if(i>j){
                    	System.out.print(j*2-i);
                	}else{
                    	System.out.print(i);
                	}
            	}
            	System.out.println("");
        	}
        	int shengyu=sz-yiban;
        	for(int j=1;j<=shengyu;j++){
            	for(int i=1;i<=j;i++){
                	System.out.print(" ");
            	}
            	for(int i=1;i<=sz-j*2;i++){
                	if(i>yiban-j){
                    	System.out.print(sz+1-j*2-i);
                	}else{
                    	System.out.print(i);
                	}
            	}
            	System.out.println("");
        	}
    	}
	}
}

第三种:

在这里插入图片描述

代码:

import java.util.Scanner;
public class day11_06 {
	public static void main(String[]args){
    	Scanner a=new Scanner(System.in);
    	for(;;){
        	int sz=a.nextInt();
        	for(int j=1;j<=sz;j++){
            	for(int kong=1;kong<=sz-j;kong++){
                	System.out.print(" ");
            	}
            	for(int hua=1;hua<=j;hua++){
                	System.out.print(hua);
                	System.out.print(" ");
            	}
            	System.out.println();
        	}
        	for(int j=1;j<=sz;j++){
            	for(int kong=1;kong<=j;kong++){
                	System.out.print(" ");
            	}
            	for(int hua=1;hua<=(sz-1-j)+1;hua++){
                	System.out.print(hua);
                	System.out.print(" ");
            	}
            	System.out.println();
        	}
    	}
	}
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值