zoukankan      html  css  js  c++  java
  • 输出以下图案: ​ * ​ *** ***** ******* ***** ​ *** ​ *

    输出以下图案:

    ​ *

    ​ ***

    *****

    *******

    *****

    ​ ***

    ​ *

    答案解析:

    该题目需要关心当前行对应的从最左边到第一颗*的空格数量以及星星数量。将该题分为两个部分,前面4行和后面3行来进行拆分。

    前4行中:

    第一行:行号为0, 空格数为3,星星数量为1;

    第二行:行号为1, 空格数为2, 星星数量为3;

    第三行:行号为2, 空格数为1, 星星数量为5;

    第四行:行号为3, 空格数为0,星星数量为7;

    则我们可以推出两组关系,即行号和空格数量关系为:空格数 = 3 - 行号 。行号与星星的关系为:星星数 = 2 * 行号 + 1

    后三行中:

    第一行:行号为0,空格数为1,星星数量为5;

    第二行:行号为1, 空格数为2, 星星数量为3;

    第三行:行号为2, 空格数为3,星星数量为1;

    则我们推出两组关系,即行号与数量的关系:空格数 = 行号 + 1。行号与星星的关系:星星数 = 7 - 2 * (行号+1)

    基于上面的关系,我们写出如下代码:

    代码示例:

    #include <stdio.h>
    
    int main()
    {
    	int cur_row, space_count, start_count;
    	//输出前4行内容
    	for (cur_row = 0; cur_row < 4; cur_row++)
    	{
    		//计算当前行空格数量,并且进行打印
    		for (space_count = 3 - cur_row; space_count > 0; space_count--)
    		{
    			printf(" ");
    		}
    		//计算当前行*数量,并且进行打印
    		for (start_count = 2 * cur_row + 1; start_count > 0; start_count--)
    		{
    			printf("*");
    		}
    		printf("
    ") ;
    	}
    	//输出后三行
    	for (cur_row = 0; cur_row < 3; cur_row++)
    	{
    		for (space_count = cur_row + 1; space_count > 0; space_count--)
    		{
    			printf(" ");
    		}
    
    		for (start_count = 7 - 2 * (cur_row + 1); start_count > 0; start_count--)
    		{
    			printf("*");
    		}
    		printf("
    ");
    	}
    	return 0;
    }
    

    运行截图:

    输出以下图案:  ​      *  ​    ***    *****  *******    *****  ​    ***  ​      *

  • 相关阅读:
    electron 整合 serialport
    javascript 中字符串转化utf8字节数组, 然后在将字节数组转化十六进制字符串
    linux 之 非root用户安装mysql5.7.27
    linux(CentOS7) 之 zookeeper 下载及安装
    linux(CentOS7) 之 ntp时间同步配置步骤
    linux(CentOS7) 之 克隆虚拟机并配置网络(固定ip)
    linux(CentOS7) 之 MySQL 5.7.30 下载及安装
    linux(CentOS7) 之 jdk1.8 下载及安装
    Vue.prototype定义原型属性或方法
    Map接口中的常用方法
  • 原文地址:https://www.cnblogs.com/weiyidedaan/p/13660919.html
Copyright © 2011-2022 走看看