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");
}
}

练习:

最新文章

  1. UI控件(UISlider)
  2. MySQL Information Functions
  3. Bat脚本实现MySQL数据库SQL文件备份
  4. LintCode Binary Tree Paths
  5. 自定义NSLog宏输出
  6. AbstractMap学习记录
  7. SpringMVC注解@RequestMapping
  8. jS放大镜效果
  9. 我在北京找工作(二):java实现算法&lt;1&gt; 冒泡排序+直接选择排序
  10. 【JSOI2008】星球大战 (并查集)
  11. LearnOpenGL
  12. Android在开发中的使用技巧之解决ScrollView嵌套RecyclerView出现的系列问题
  13. 峰Redis学习(4)Redis 数据结构(List的操作)
  14. WEB版一次选择多个文件进行批量上传(swfupload)的解决方案
  15. 获取页面所有链接的JS
  16. #if 1...#endif
  17. Vue2.x整合百度地图JavaScript方案
  18. 【算法31】寻找数组的主元素(Majority Element)
  19. 模型构建&lt;2&gt;:不平衡样本集的处理
  20. element onclick 动态创建元素并绑定onclick事件

热门文章

  1. Java之IO流用法总结
  2. mongodb学习(三)——函数使用的小技巧
  3. [Micropython]TPYBoard v202 智能WIFI远控小车
  4. 沈阳网络赛 F - 上下界网络流
  5. JDBC超时设置【转】
  6. hdu6601 主席树
  7. Java 中的等待唤醒机制透彻讲解
  8. 我终于学会了使用python操作postgresql
  9. 6.JavaSE之数据类型扩展及面试题讲解
  10. 异数OS TCP协议栈测试(二)--短连接篇