算法训练 4-1打印下述图形  
时间限制:1.0s   内存限制:256.0MB
问题描述
  使用循环结构打印下述图形,打印行数n由用户输入。打印空格时使用"%s"格式,向printf函数传递只包含一个或多个空格的字符串" ",下同。
样例输入
一个满足题目要求的输入范例。
例:

5

样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
  输入数据中每一个数的范围。
  例:0<n<20。
 
题目解析:
  本道题共两种思路,由于 n 的范围很小(0 < n <20),所以两种思路就运行时间、占用内存和复杂度并无优劣之分。
  (1)用循环语句分别控制行、每行开始的空格和每行的 *。
    比如,n = 3
            
          
                表 1.1
    利用 i ( i 从 1 开始)来控制行,因此可以推出空格数 space 与 行数 n 和控制行变量 i 的关系: space = n - i ,* 数 asterisk 与控制行变量 i 的关系: asterisk = 2 * i - 1。
 
    (2)将图形存放在 String 类型的数组中,数组初始化为空。如图 1.1 所示,找出中心列号 center = n - 1,每 i 行都是在中心列的左右两边加 i 个 *,最后将数组输出即可。

示例代码1:

 import java.util.Scanner;

 public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); for(int i = 1; i <= n; i++){ //控制行
for(int space = n-i ; space >= 1; space--){ //控制每行前边的空格
System.out.print(" ");
}
for(int asterisk = 1 ; asterisk <= 2 * i - 1; asterisk++){ //控制每行的 *
System.out.print("*");
}
System.out.println();
}
}
}

示例代码2:

 import java.util.Scanner;

 public class Main {

     public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); String[][] triangle = new String[n][2*n-1]; //创建一个数组,初始化为空
for(int i = 0; i < n; i++) {
for(int j = 0; j < 2*n-1; j++) {
triangle[i][j] = " ";
}
} int center = n-1; //中心列号
for(int i = 0; i < n; i++) { //控制行
for(int j = 0; j <= i ; j++) { //每行在中心左右两边增加 i 个 *
triangle[i][center-j] = "*";
triangle[i][center+j] = "*";
}
}
//输出图形
for(int i = 0; i < n; i++) {
for(int j = 0; j < 2*n-1; j++) {
System.out.print(triangle[i][j]);
}
System.out.print("\n");
}
}
}

  

蓝桥杯 算法训练 ALGO-145 4-1打印下述图形的更多相关文章

  1. Java实现 蓝桥杯 算法训练 猴子吃包子(暴力)

    试题 算法训练 猴子吃包子 问题描述 从前,有一只吃包子很厉害的猴子,它可以吃无数个包子,但是,它吃不同的包子速度也不同:肉包每秒钟吃x个:韭菜包每秒钟吃y个:没有馅的包子每秒钟吃z个:现在有x1个肉 ...

  2. Java实现蓝桥杯 算法训练 大等于n的最小完全平方数

    试题 算法训练 大等于n的最小完全平方数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输出大等于n的最小的完全平方数. 若一个数能表示成某个自然数的平方的形式,则称这个数为完全平 ...

  3. 蓝桥杯算法训练 java算法 表达式求值

    问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值.其中除表示整除. 输入格式 输入一行,包含一个表达式. 输出格式 输出这个表达式的值. 样例输入 1-2+3*(4-5) 样例输出 - ...

  4. java实现 蓝桥杯 算法训练 Password Suspects

    问题描述 在年轻的时候,我们故事中的英雄--国王 Copa--他的私人数据并不是完全安全地隐蔽.对他来说是,这不可接受的.因此,他发明了一种密码,好记又难以破解.后来,他才知道这种密码是一个长度为奇数 ...

  5. 蓝桥杯 算法训练 Torry的困惑(基本型)(水题,筛法求素数)

    算法训练 Torry的困惑(基本型) 时间限制:1.0s   内存限制:512.0MB      问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7……这样的数叫做质数.Torry突 ...

  6. 蓝桥杯 算法训练 区间k大数查询(水题)

    算法训练 区间k大数查询 时间限制:1.0s   内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. ...

  7. 蓝桥杯--算法训练 区间k大数查询

                                                                                 算法训练 区间k大数查询   时间限制:1.0 ...

  8. 蓝桥杯 算法训练 ALGO-116 最大的算式

    算法训练 最大的算式   时间限制:1.0s   内存限制:256.0MB 问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量 ...

  9. 蓝桥杯算法训练 区间k大数查询

    算法训练 区间k大数查询   问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个 ...

随机推荐

  1. shell的符号总结

    1.命令替换符:先执行符号内的命令 反引号``:旧格式 $():新格式 2.字符串界定符: 单引号:保持引号内 的字符的字面值. 双引号:有些情况特殊. $echo '`date`' #不会执行`da ...

  2. Sagan

    来自Sagan官网:https://quadrantsec.com/services_technology/product_technology/ Sagan是一个多线程的,实时的安全信息事件管理分析 ...

  3. Qt配置USBCAN通信

    周立功为CAN通信提供了动态库:官方提供了很多相关动态库和lib等,如图 ,其中kerneldlls里还有很多动态库,还有一个配置文件.其实这么多的文件,如果我们只用到USBCAN2通信,只需要ker ...

  4. 实现利用公钥私钥免密码登录Linux服务器

    原理 客户端生成公钥私钥,把公钥拷贝给linux服务器,用自己的私钥连接服务器.实现如下: 如果是两台Linux服用器A和B,A来实现免密码登录B A执行ssh-keygen -t rsa 就会在/r ...

  5. JAVA获取webapp路径

    1.使用ServletContext获取webapp目录 在Servlet中 String path = getServletContext().getRealPath("/"); ...

  6. socket io 记得flush

    public class Client { public static void main(String args[]) throws Exception { //为了简单起见,所有的异常都直接往外抛 ...

  7. DL四(预处理:主成分分析与白化 Preprocessing PCA and Whitening )

    预处理:主成分分析与白化 Preprocessing:PCA and Whitening 一主成分分析 PCA 1.1 基本术语 主成分分析 Principal Components Analysis ...

  8. Flume-NG启动过程源码分析(三)(原创)

    上一篇文章分析了Flume如何加载配置文件的,动态加载也只是重复运行getConfiguration(). 本篇分析加载配置文件后各个组件是如何运行的? 加载完配置文件订阅者Application类会 ...

  9. Codeforces Round #373 (Div. 2) E. Sasha and Array 矩阵快速幂+线段树

    E. Sasha and Array time limit per test 5 seconds memory limit per test 256 megabytes input standard ...

  10. JAVA 中的集合框架

    java集合框架提供了一套性能优良.使用方便的接口和类,它们位于java.util包中 一.集合与数组 数组:(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知 ...