数字金字塔(PTA)

简介: 原题如下:练习5-3 数字金字塔 (15 分)本题要求实现函数输出n行数字金字塔。函数接口定义:void pyramid( int n );其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注意每个数字后面跟一个空格。

原题如下:


练习5-3 数字金字塔 (15 分)

本题要求实现函数输出n行数字金字塔。


函数接口定义:

void pyramid( int n );

其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注意每个数字后面跟一个空格。


裁判测试程序样例:


#include 
void pyramid( int n );
int main()
{
int n;


scanf("%d", &n);
pyramid(n);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
5
输出样例:
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5


思路分析:


题目要求:


1:根据输入的n值,输出n行数字,组成一个金字塔


2:每个数字后面都有一个空格


我们观察输出样例:每行第一个数字前的空格是不一样的,但是每行最后数字后只有一个空格。我们想办法寻求每行第一个数字前的空格数和行数的关系。


第一行,1前空格数4


第二行,2前空格数3


第三行,3前空格数2


.........


设行数为n,则第i行第一个数字前的空格数为n-i。


这就好办了,我们应该怎样写呢?


首先要输出指定行数的数字,我们要定义一个变量i,用来统计行数,根据i来输出行。


还有,输出空格数,我们再次定义一个j,我们根据它来输出空格。


同理我们再定义一个k变量来记录每行要输出的数字,我们根据它来输出数字。在输出每行数字最后,紧接着加空格。


我们这样就很清楚了。来上代码。 我们给出题目要求的接口函数


下面展示一些 内联代码片。


void pyramid( int n ){
    int i,j,k;
    //三层for嵌套
   for(i=1;i<=n;i++){//控制行数
        for( j=1;j<=n-i;j++){//根据行数输出空格
         printf(" ");//输出数字前空格
        }
        for(k=1;k<=i;k++){//根据行数输出数字
            printf("%d",i);
            printf(" ");//输出数字后的空格
        }
        printf("\n");
   }
}


完整的代码


下面展示一些 内联代码片。


#include <stdio.h>
void pyramid( int n );
int main()
{    
    int n;
    scanf("%d", &n);
    pyramid(n);
    return 0;
}
void pyramid( int n ){
    int i,j,k;
    //下面是三层for
   for(i=1;i<=n;i++){
        for( j=1;j<=n-i;j++){
         printf(" ");//输出空格
        }
        for(k=1;k<=i;k++){//行数和数字数目相同的。
            printf("%d",i);
            printf(" ");
         }
         printf("\n");//注意换行
    }
}

测试:




相关文章
|
9月前
|
机器学习/深度学习
PTA- 各位数字之和
各位数字之和
86 0
|
9月前
PTA-矩阵转置
该代码实现将输入的3x3矩阵转置并按指定格式输出。输入为9个小于100的整数,用空格分隔,输出转置后的矩阵。示例输入:1 2 3 4 5 6 7 8 9,输出:1 4 7\n2 5 8\n3 6 9。代码使用`map(int,input().split())`读取输入,然后通过for循环按格式打印转置后的矩阵。
89 0
|
9月前
|
机器学习/深度学习
PTA-方阵转置
方阵转置
57 1
|
9月前
|
移动开发 算法 C#
Leetcode算法系列| 6. Z 字形变换
Leetcode算法系列| 6. Z 字形变换
1258:【例9.2】数字金字塔 2021-01-15
1258:【例9.2】数字金字塔 2021-01-15
123 0
|
存储 测试技术 C++
力扣6-N 字形变换
力扣6-N 字形变换
134 0
力扣6-N 字形变换
IIR数字滤波器设计(数字信号处理)
1.熟悉双线性变换法设计IIR数字滤波器的原理与方法。 2.掌握IIR数字滤波器的MATLAB实现方法,会调用ellipord()和ellip() 函数设计各种滤波器。 3.观察分析滤波器输入输出数据波形,理解数字滤波的概念。
572 1
IIR数字滤波器设计(数字信号处理)
|
机器学习/深度学习
P5731 【深基5.习6】蛇形方阵
P5731 【深基5.习6】蛇形方阵
|
C语言 C++
一口气搞定C语言之数字金字塔!!!--PTA
本题要求实现函数输出n行数字金字塔。
一口气搞定C语言之数字金字塔!!!--PTA
|
机器学习/深度学习
【面试】输出"蛇形"矩阵
腾讯实习在线笔试的一道题目。   根据输入的数字(< 1000),输出这样的"蛇形"矩阵,如下。输入n,输出(n * n)阶矩阵,满足由外到内依次增大。
235 0

热门文章

最新文章