0
点赞
收藏
分享

微信扫一扫

Java 1027 打印沙漏

输入格式:

输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。

输出格式:

首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

输入样例:

19 *

结尾无空行

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 出样例:





2

结尾无空行

Java代码实现(暴力解法,会超时,未优化):

=======================

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

String[] str = sc.nextLine().split(" ");

int n = Integer.parseInt(str[0]);

int left;//剩下没用掉的符号数

int hang;//上半行行数

int i;

if(n == 1){

System.out.println(str[1]);

System.out.print(“0”);

}else

for(i = 2;;i++){

if(2ii-1 <= n && 2*(i+1)*(i+1)-2 > n){

left = n - (2ii-1);

hang = i;

//上半部分

for(int j = 0;j < hang;j++){

for(int k = 0;k < j;k++){//打印每行空白数

System.out.print(" ");

}

for(int t = 0;t < hang2-1-j2;t++){// 打印每行符号数

System.out.print(str[1]);

}

System.out.print(“\n”);

}

//下半部分

for(int j = 1;j < hang;j++){

for(int k = 0;k < hang-j-1;k++){//打印每行空白数

System.out.print(" ");

}

for(int t = 0;t <j*2+1 ;t++){// 打印每行符号数

System.out.print(str[1]);

}

System.out.print(“\n”);

}

System.out.print(left);

break;

}

}

}

}

Java代码实现(AC优化版):

================

举报

相关推荐

0 条评论