Java语言中,使用字符打印出“沙漏”形状。

图样示例:

​​​​​​​*****
 ***
  *
 ***
*****
        打印“沙漏”就类似打印一个上下金字塔一样,从见到示例图样我们就应该有了一个思路:就是先打印出等腰三角形

打印倒三角 

//打印倒三角
class test{
public static void test() {
	Scanner input = new Scanner(System.in);
	int num = input.nextInt();  //输入要打印三角形的行数
    //打印倒三角
	for(int i=0;i<num;i++) {  //外层循环打印换行
    //第一行需要打印的空格数为0,之后依次递增,因此需要定义一个动态的变量j
	for(int j=i;j>0;j--) {  
		System.out.print(" ");  //打印空格
	}
    //每行打印的*以此递减,每次递减的数量为2*(num-i)-1
	for(int j=1;j<=2*(num-i)-1;j++) {  
		System.out.print("*");  //打印"*"
	}
	System.out.println();
	}
}
}
3
*****
 ***
  *

 打印正三角

//打印正三角
class test{
  public static void test() {
  Scanner input = new Scanner(System.in);
  int num = input.nextInt();
  for(int i =0;i<num;i++) {
    for(int j=num-i-1;j>0;j--) {
	System.out.print(" ");
	}
	for(int j=1;j<=2*i+1;j++) {
	System.out.print("*");
	}
	System.out.println();
	}
    }
}
3
  *
 ***
*****

 二者结合之后就打印出了沙漏的大致形状了,然而正三角的第一行“塔尖”还没有处理

3
*****
 ***
  *
  *
 ***
*****

 我们只需要让正三角的第一行不要输出就可以了,因此只需要加一句选择语句即可解决,完整代码如下:

class test{
public static void shaLou() {
Scanner input = new Scanner(System.in);
int num = input.nextInt();
for(int i=0;i<num;i++) {
	for(int j=i;j>0;j--) {
		System.out.print(" ");
	}
	for(int j=1;j<=2*(num-i)-1;j++) {
		System.out.print("*");
	}
	System.out.println();
}
for(int i =0;i<num;i++) {
   if(i==0)  //当i=0时不输出正三角的第一行
	continue;
	for(int j=num-i-1;j>0;j--) {
		System.out.print(" ");
	}
	for(int j=1;j<=2*i+1;j++) {
		System.out.print("*");
	}
	System.out.println();
	}
	}
}
3
*****
 ***
  *
 ***
*****

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值