《N诺机试指南》(七)排版类问题
2024-09-06 07:58:12
1.菱形问题:
解析: 主要通过打印空格和星形来打印整个图形,将整体分为=上三角形+下三角形
首先观察上三角形可以发现:第一行2个空格1个星、第二行1个空格3个星、第三行0个空格5个星
空格数:2-->1-->0 、星数:1-->3-->5
代码:
#include <bits/stdc++.h>
using namespace std; int main(){
1.打印菱形
int n;
scanf("%d", &n);//输入打印菱形对角边
//打印上三角形
for(int i=1; i<=n; i++){
//打印空格:个数变化2-->1-->0
for(int j=1; j<=n-i; j++){
printf(" ");
}
//打印*:个数变化1-->3-->5 (2i-1)
for(int j=n-i+1; j<n+i; j++){
printf("*");
}
printf("\n");
}
//打印下三角形=上三角反过来输出
for(int i=n-1; i>=1; i--){
for(int j=1; j<=n-i; j++){
printf(" ");
}
for(int j=n-i+1; j<n+i; j++){
printf("*");
}
printf("\n");
}
return 0
}
在打印上三角时候:
只要满足2i-1即可
2.杨辉三角:
解析:杨辉三角主要是某一行某一列的那个数 = 上一行那一列前面一个的数 + 上一行那一列的数
代码:
2.打印杨辉三角
int a[21][21] = {0};
int n;
while( scanf("%d", &n)!=EOF ){
if( n==0 )
return -1;
a[1][1] = 1;
for(int i=2; i<=n; i++){//从第二行开始
for(int j=1; j<=i; j++){
//这是重点!
a[i][j] = a[i-1][j] + a[i-1][j-1];
}
}
for(int i=1; i<=n; i++){
for(int j=1; j<=i; j++){
printf("%d ", a[i][j]);
}
printf("\n");
}
}
练习:
最新文章
- UI控件(UISlider)
- MySQL Information Functions
- Bat脚本实现MySQL数据库SQL文件备份
- LintCode Binary Tree Paths
- 自定义NSLog宏输出
- AbstractMap学习记录
- SpringMVC注解@RequestMapping
- jS放大镜效果
- 我在北京找工作(二):java实现算法<;1>; 冒泡排序+直接选择排序
- 【JSOI2008】星球大战 (并查集)
- LearnOpenGL
- Android在开发中的使用技巧之解决ScrollView嵌套RecyclerView出现的系列问题
- 峰Redis学习(4)Redis 数据结构(List的操作)
- WEB版一次选择多个文件进行批量上传(swfupload)的解决方案
- 获取页面所有链接的JS
- #if 1...#endif
- Vue2.x整合百度地图JavaScript方案
- 【算法31】寻找数组的主元素(Majority Element)
- 模型构建<;2>;:不平衡样本集的处理
- element onclick 动态创建元素并绑定onclick事件