【已解决】蓝桥杯 2017年C组第五题 杨辉三角(分析与总结)
励志用少的代码做高效表达
题目描述:
杨辉三角也叫帕斯卡三角,在很多数量关系中可以看到,十分重要。
第0行: 1
第1行: 1 1
第2行: 1 2 1
第3行: 1 3 3 1
第4行: 1 4 6 4 1
…两边的元素都是1, 中间的元素是左上角的元素与右上角的元素和。
我们约定,行号,列号都从0计数。
所以: 第6行的第2个元素是15,第3个元素是20直观地看,需要开辟一个二维数组,其实一维数组也可以胜任。
如下程序就是用一维数组“腾挪”的解法。
分析与思考
代码填空题一般来讲都是考查递归或递推(因为其他的也没什么好考查的, 一个调试就出来了)。 相对来说是三种题型中技巧性最高、也是不太容易得分的一道题。
这里讲一讲我解代码填空的技巧
首先确定他的题型, 如果不是递归或递推,只是输出某种图案或结构,那么直接采用输出测试、注释、调试等手段, 慢慢可以试出答案。
如果是递归、回溯、递推等题型,那么就需要先手算出大致的推理过程, 最后填入代码。 如本题就是一道递推题, 我们先将n等于2,3,4,5分别求出, 根据初始条件推理如何才能得到这种解, 一层一层的分析, 最后可以比较容易的得到递推公式。
当然, 今天离蓝桥杯省赛还有两天的时间, 如果觉得自己对递归了解不够,不具备这样的能力, 那就瞎试吧, 成功率也是蛮高的。
总结一下技巧:手算推导、输出测试、注释输出、调试、随机测试(瞎试) (如果对你产生了帮助, 记得给博主一个赞哟)
上程序
#include<bits/stdc++.h>
using namespace std;long long f(int row, int col){if(row<2) return 1;if(col==0) return 1;if(col==row) return 1;long long a[1024];a[0]=1;a[1]=1; int p = 2;int q;while(p<=row){a[p] = 1;for( q=p-1;q>0;q-- ) a[q] = a[q] + a[q-1]; //填空p++;}return a[col];
}int main()
{printf("%d\n", f(6,2));printf("%d\n", f(6,3));printf("%lld\n", f(40,20)); return 0;
}
把手举过头顶,突然张开五指,那么,恭喜你给自己放了个烟花!
【已解决】蓝桥杯 2017年C组第五题 杨辉三角(分析与总结)相关推荐
- 【解题报告+通法】_九宫幻方 蓝桥杯 2017年C组第八题(dfs解法)
题目描述 小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分,三阶幻方指的是将1~9不重复的填入一个3*3的矩阵当中,使得每一行.每一列和每一条对角线的和都是相同的. 三阶幻方又被 ...
- 16行代码AC_蓝桥杯 2017年C组第三题 算式900(暴力解法+DFS解法)
励志用更少的代码做更高效的表达 题目描述: 小明的作业本上有道思考题: 看下面的算式: (□□□□-□□□□)*□□=900 其中的小方块代表0~9的数字,这10个方块刚好包含了0~9中的所有数字. ...
- 蓝桥杯——杨辉三角分析总结
题目描述 下面的图形是著名的杨辉三角形: 如果我们按从上到下.从左到右的顺序把所有数排成一列,可以得到如下数列: 1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,⋯ 给定一个正整数 N,请 ...
- 【蓝桥杯练习】B组结果填空题13-18------更新中
[2013年B组] 2.标题: 马虎的算式 小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了. 有一次,老师出的题目是:36 x 495 = ? 他却给抄成了:396 x 45 = ...
- 复数幂用java程序怎么求_蓝桥杯——复数幂 (2018JavaAB组第3题)
18年Java蓝桥杯A组第3题和B组是一样的. 第三题往往比较难. 复数幂 (18JavaAB3) (A.B两卷第三题一样) 设i为虚数单位.对于任意正整数n,(2+3i)^n 的实部和虚部都是整数. ...
- 2020年第11届蓝桥杯省赛Python组(真题+解析+代码):数字三角形
大家好,我是爱分享的小蓝,欢迎交流指正~ 1 真题 输入 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 输出 27 2 解析 难度系数:⭐⭐ 考察题型:动态规划 涉及知识点:模块 ...
- 2018年第九届蓝桥杯国赛B组C++真题汇总
1. 换零钞 x星球的钞票的面额只有:100元,5元,2元,1元,共4种. 小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱. 小明有点强迫症,他坚持要求200元换 ...
- 蓝桥杯——快速排序(2018JavaB组第5题9分)
快速排序(18JavaB5,9') 以下代码可以从数组a[]中找出第k小的元素. 它使用了类似快速排序中的分治算法,期望时间复杂度是O(N)的. 请仔细阅读分析源码,填写划线部分缺失的内容. impo ...
- 2017年第八届蓝桥杯国赛B组C++真题汇总
1. 36进制 对于16进制,我们使用字母A-F来表示10及以上的数字. 如法炮制,一直用到字母Z,就可以表示36进制. 36进制中,A表示10,Z表示35,AA表示370 你能算出 MANY 表示的 ...
最新文章
- BZOJ 1091([SCOI2003]分割多边形-分割直线)
- [Java] Hashmap分析
- RTSP协议基本分析
- RancherOS v1.5.0发布
- Linux移植随笔:让内核支持nor flash
- Python3安装turtle提示错误:Command python setup.py egg_info failed with error code 1
- 基于OpenCV的计算机视觉入门(3)图像特效
- 160505、oracle 修改字符集 修改为ZHS16GBK
- 李沐老师的PyTorch 版《动手学深度学习》PDF 开源了(全中文,支持 Jupyter 运行)
- python 百度ai json解析_百度AI识别调用的简单例子
- 【视频】Copula算法原理和R语言股市收益率相依性可视化分析
- 记录一下自己简单的想法
- vue后台管理框架(iview + vue)
- PLC与RobotStudio联合仿真调试——项目一
- 集尘室行业调研报告 - 市场现状分析与发展前景预测(2021 - 2027)
- android 6.0小游戏,宝宝汽车小游戏
- 基于Matlab模拟哈特曼波前探测器
- 解决不支持S/W HEVC(H265)解码/找不到FFmpeg64.dll
- 智慧工地系统_成都智慧工地平台
- 网络安全 Kali虚拟机的安装和简单使用