本题要求实现一个函数,输出n行空心的数字金字塔。

题目:函数接口定义

void hollowPyramid(int n);

 裁判用例

#include 

void hollowPyramid(int n);

int main()
{
    int n;

    scanf("%d", &n);
    hollowPyramid(n);

    return 0;
}

//input
5


//output


    1
   2 2
  3   3
 4     4
555555555

这个题的一般思路一定是若干个递归

通过分析,可以转化分开成最后一行和其他行。

话不多说,直接上代码。

函数实现

void hollowPyramid(int n)
{
    for (int i = 0; i < n-1; i++)
    {
        for (int j = n-i-1; j > 0; j--)
        {
            printf(" ");
        }
        printf("%d", i+1);
        for (int k = 2 * i - 1; k >= 1; k--)
        {
            printf(" ");
        }
        if (i)
        {
            printf("%d", i+1);
        }
        printf("\n");
    }
    for (int i = 0; i < 2 * n - 1; i++)
    {
        printf("%d", n);
    }
}

 

 

你可能感兴趣的:(日常,c语言,c++,算法)