排版类问题
标签: 机试攻略 - 高分篇
学习人数: 27.4k


高清播放
赞赏支持

排版类问题也是机试中经常出现的题目,这类题目主要考验考生对代码的掌控程度。表面上看起来很简单,但是对于大部分没有认真研究过的同学来学,这些题可能会搞半天才能搞出来。

总的来说,排版类的题目可以以下几种题型为代表。

1、输出字符棱形 DreamJudge 1473
这类题目的变形可以是输出长方形、三角形、梯形等形状。
2、旋转数字输出
3、矩阵顺/逆指针旋转
4、矩阵翻转
这类题目的变形可以是轴对称翻转、中心对称翻转等。
5、杨辉三角形
6、2048问题


以上,我们选择其中输出字符棱形和杨辉三角形进行详细讲解,其他题型我们给出解题思路以及题目编号,大家可以在本节后面的练习题目里找到并完成。如果自己无法理解并完成题目,请加入我们的机试交流群进行提问交流。

字符棱形
题目描述:
输入一个整数n表示棱形的对角半长度,请你用*把这个棱形画出来。
输入:
3

输出:
  *
 ***
*****
 ***
  *
输入样例#:
1
输出样例#:
*
题目来源:
DreamJudge 1473

解题分析:对于这类题目,我们可以将它进行分解。从中间切开,上面一个三角形,下面一个三角形。那么问题就转化为了如何输出三角形,我们可以利用两个for循环控制来输出三角形。

 

参考代码

#include <stdio.h>  
  
int main() {  
    int n;  
    scanf("%d", &n);  
    //上三角  
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n - i
            printf(" ");  
        }  
        for (int j = n - i + 1; j 
            printf("*");  
        }  
        printf("\n");  
    }  
    //下三角  下三角只需要将上三角反
    for (int i = n - 1; i >= 1; i-
        for (int j = 1; j <= n - i
            printf(" ");  
        }  
        for (int j = n - i + 1; j 
            printf("*");  
        }  
        printf("\n");  
    }  
    return 0;  
} 

 

 

杨辉三角形
题目描述:
提到杨辉三角形.大家应该都很熟悉.这是我国宋朝数学家杨辉在公元1261年著书《详解九章算法》提出的。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 我们不难其规律: S1:这些数排列的形状像等腰三角形,两腰上的数都是1 S2:从右往左斜着看,第一列是1,1,1,1,1,1,1;第二列是,1,2,3,4,5,6;第三列是1,3,6,10,15;第四列是1,4,10,20;第五...

登录查看完整内容


课后作业

练习题目

DreamJudge 1392 杨辉三角形 - 西北工业大学
DreamJudge 1377 旋转矩 - 北航
DreamJudge 1216 旋转方阵
DreamJudge 1221 旋转矩阵
DreamJudge 1472 2048游戏


登录后开始许愿

1 条上岸许愿
luojing
2021年1月26日 08:43

老师用的是什么键盘?laugh

赞(0)

小王八挺精致 回复 luojing: 飞科

2021年3月16日 10:37

admin 回复 luojing: cherry

2022年6月13日 18:20