列表

详情


BC107. 箭形图案

描述

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

输入描述

本题多组输入,每行一个整数(2~20)。

输出描述

针对每行输入,输出用“*”组成的箭形。

示例1

输入:

2

输出:

    *
  **
***
  **
    *

示例2

输入:

3

输出:

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

示例3

输入:

4

输出:

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

原站题解

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

#include<stdio.h>


int main()
{
  int i;
  while((scanf("%d",&i))!=EOF)
  {
    for(int j = 0;j<=i;j++)
    {
      for(int k =0;k<(i-j)*2;k++)
      {
        printf("%c",' ');
      }
      for(int z = 0;z<=j;z++)
      {
        printf("%c",'*');
      }
      printf("\n");
    }
    for(int j = 0;j<i;j++)
    {
      for(int k =0;k<(1+j)*2;k++)
      {
        printf("%c",' ');
      }
      for(int z = 0;z<i-j;z++)
      {
        printf("%c",'*');
      }
      printf("\n");
    }
  }
  return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 188KB, 提交时间: 2021-10-14

#include<stdio.h>


int main()
{   int n;//n为上半部分 下半部分共n+1
    while(~scanf("%d",&n))
    {
        int i,j;
        for(i=1;i<=n;i++)
        {
            for(j=2*(n-i+1);j>0;j--)
               printf(" ");
            for(j=1;j<=i;j++)
                printf("*");
            printf("\n");
        }
        
        for(i=1;i<=n+1;i++)
        {
            for(j=2*i-2;j>0;j--)
                printf(" ");
            for(j=n+2-i;j>0;j--)
                printf("*");
            printf("\n");
        }
       
    }
    
    
    
    
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 192KB, 提交时间: 2022-01-25

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

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

#include <stdio.h>

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

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

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

上一题