蓝桥杯学习记录-21.2.24
一、测试练习
杨辉三角形
1、问题描述
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。
下面给出了杨辉三角形的前4行:
1
1 1
1 2 1
1 3 3 1
给出n,输出它的前n行。
输入格式
输入包含一个数n。
输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
样例输入
4
样例输出
1
1 1
1 2 1
1 3 3 1数据规模与约定
1 <= n <= 34。
2、解题思路
(1)设一个二维数组,通过规律找出行和列之间的关系
3、代码
#include<iostream>
using namespace std;
int main ()
{
int n;
cin>>n;
int a[n][n];
for(int i=0;i<n;i++)
{
for(int j=0;j<i+1;j++)
{
a[i][0]=1;
a[i][j]=1;
if(i>1&&j>0&&i!=j)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
二、视频学习
1、视频名称及链接
[栈和递归视频讲解]
(https://www.bilibili.com/video/BV1jE411g76D?p=11)
2、学习心得
(1)栈,是一种满足一定约束的线性数据结构,只允许在栈的一端插入或删除元素,这一端被称为栈顶,另一端被称为栈底,压入元素称之为push,弹出元素称之为pop.
(2)其重要的性质是:先进后出,而队列是后进后出。
3、对应练习
斐波那契数列
(1)题目描述
给出整数n,求出斐波那契数列
(2)代码
#include <iostream>
using namespace std;
int fib(int);
int main()
{
int n;
cin>>n;
for (int i = 0; i < n; i++)
cout << fib(i) << " ";
return 0;
}
int fib (int n)
{
if (n <= 0)
return 0;
else if (n == 1)
return 1;
else
return fib(n - 1) + fib(n - 2);
}