列表

详情


BC106. K形图案

描述

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

输入描述

多组输入,一个整数(2~20)。

输出描述

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

示例1

输入:

2

输出:

* * * 
* * 
* 
* * 
* * * 

示例2

输入:

3

输出:

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

示例3

输入:

4

输出:

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

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 192KB, 提交时间: 2021-09-05

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

C 解法, 执行用时: 1ms, 内存消耗: 200KB, 提交时间: 2021-07-21

#include<stdio.h>
int main(){
     int n = 0;
    while (scanf("%d", &n) != EOF)
    {
        int j = 0;
        for (int i = 0; i <= n; i++)//上半部分行数
        {
            for (j = n; j >= i; j--)//每行要打印的个数
                printf("* ");
            for (int k = 0; k < i; k++)//每行后都有一些空格要输入
                printf(" ");
            printf("\n");
        }
 
        for (int i = 0; i < n; i++)//下半部分行数
        {
            for (int k = j - 1; k < n + i; k++)//每行打印的个数
                printf("* ");
            for (int k = n - i; k > 1; k--)
                printf(" ");
            printf("\n");
        }
    }
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 220KB, 提交时间: 2021-06-28

// #include<stdio.h>
// int main()
// {
//     int a = 0;
//     while (scanf("%d", &a) != EOF)
//     {
//         getchar();
//         int i = 0;
//         int j = 0;
//         int k = 0;
//         int c = a + 2;
//         for (i = 0; i < a + 1; i++)
//         {
//             c = c - 1;
//             for (j = 0; j < c; j++)
//             {
//                 printf("* ");
//             }
//             for(k = 0; k < a-i; k++)
//             {
//                 printf(" ");
//             }
//             printf("\n");
//         }
//         for (i = 0; i < a ; i++)
//         {
//             c = c + 1;
//             for (j = c; j > 0; j--)
//             {
//                 printf("* ");
//             }
//             for(k = 0; k < a-i; k++)
//             {
//                 printf(" ");
//             }
//             printf("\n");
//         }
//     }
//     return 0;
// }
#include <stdio.h>
int main()
{
    int a;
    while(~scanf("%d",&a))
    {
        for(int i=a;i>0;--i)//上半部分 a行
        {
            for(int j=0;j<=i;++j)
                printf("* ");
            for(int k=0;k<a-i;++k)//这是一个坑 需要输出空格
                printf(" ");
            printf("\n");
        }
        for(int i=0;i<=a;++i)//下半部分 a+1行
        {
            for(int j=0;j<=i;++j)
                printf("* ");
            for(int k=0;k<a-i;++k)//这是一个坑 需要输出空格
                printf(" ");
            printf("\n");
        }
    }
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 220KB, 提交时间: 2021-03-20

#include<stdio.h>

int main()
{
    int i = 0;
    int j = 0;
    int n = 0;
    while(~scanf("%d", &n))
    {
        //打印上半部分
    for(i = 0; i < n; i++)
    {
        //打印*加空格
        for(j = 0; j < n+1-i; j++)
        {
            printf("* ");
        }
        //打印空格
        for(j = 0; j <= i; j++)
        {
            printf(" ");
        }
        printf("\n");
    }
    //打印下半部分
    for(i = 0; i < n+1; i++)
    {
        //打印*加空格
        for(j = 0; j < i+1; j++)
        {
            printf("* ");
        }
        //打印空格
        for(j = 0; j < n; j++)
        {
            printf(" ");
        }
        printf("\n");
    }
    }
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 220KB, 提交时间: 2020-12-21

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

上一题