排版类问题也是机试中经常出现的题目,这类题目主要考验考生对代码的掌控程度。表面上看起来很简单,但是对于大部分没有认真研究过的同学来学,这些题可能会搞半天才能搞出来。
总的来说,排版类的题目可以以下几种题型为代表。
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游戏
登录后开始许愿
输出字符棱形:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
scanf("%d", &n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i;j++)
printf(" ");
for(int j=1;j<2*i;j++)
printf("*");
cout<<endl;
}
for(int i=n-1;i>=1;i--){
for(int j=1;j<=n-i;j++)
printf(" ");
for(int j=1;j<2*i;j++)
printf("*");
cout<<endl;
}
return 0;
}
老师用的是什么键盘?