列表

详情


BC112. 空心三角形图案

描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”三角形图案。

输入描述

多组输入,一个整数(3~20),表示输出的行数,也表示组成三角形边的“*”的数量。

输出描述

针对每行输入,输出用“*”组成的“空心”三角形,每个“*”后面有一个空格。

示例1

输入:

4

输出:

*       
* *     
*   *   
* * * * 

示例2

输入:

5

输出:

*         
* *       
*   *     
*     *   
* * * * *

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 180KB, 提交时间: 2021-12-19

#include <stdio.h>
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=1;i<=n;i++)
        {
            for(int j = 1;j<2*i+1;j++)
            {
                if(i==n)
                {
                    if(j&1==1)
                    printf("*");
                else
                    printf(" ");
                    continue;
                }
                if(j==1||j==2*i-1)
                    printf("*");
                else
                    printf(" ");
            }
            printf("\n");
        }
    }
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 184KB, 提交时间: 2021-12-11

#include<stdio.h>
int main()
{
    int n,i,j;
    while(scanf("%d",&n)!=EOF)
    {
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < n; j++)
            {
                if (i < n - 1)
                {
                    if (j == i || j == 0)
                        printf("* ");
                    else
                        printf("  ");
                }
                else if (i == n - 1)
                    printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 184KB, 提交时间: 2021-12-08

#include <stdio.h>
int main()
{
	int n = 0;
	int i = 0;
	int j = 0;
	while (scanf("%d", &n) != EOF)
	{
		printf("* \n");
		printf("* * \n");
		for (i = 0; i < n - 3 ; i++)
		{
			printf("* ");
			for (j = 0; j <= i; j++)
			{
				printf("  ");
			}
			printf("* \n");
		}
		for (n; n > 0; n--)
		{
			printf("* ");
		}
		printf("\n");
	}
	return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 184KB, 提交时间: 2021-11-29

#include<stdio.h>
int main()
{
    int n = 0;
    int i = 0;
    int j = 0;
    while (~scanf("%d", &n))
    {
        if (n == 3)
        {
            printf("*\n");
            printf("* *\n");
            printf("* * *\n");
        }
        else
        {
            for (i = 0; i < n - 1; i++)
            {
                printf("* ");
                if (i >= 1)
                {
                    for (j = 0; j < i - 1; j++)
                    {
                        printf("  ");
                    }
                    printf("* ");
                }
                printf("\n");
            }
            for (i = 0; i < n; i++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
        
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 184KB, 提交时间: 2021-11-22

#include <stdio.h>
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int i,j;
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                if(j==1||i==n||i==j)
                {
                    printf("* ");
                }
                else
                {
                    printf("  ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

上一题