《算法零基础100讲》(第2讲) 数列_英雄哪里出来-CSDN博客
数列
下面是各个数列的递推公式
1.等差数列
2.等比数列
3.斐波那契数列
英雄哥重视的斐波那契数列,因为它对之后的递归理解有重要作用
509. 斐波那契数 - 力扣(LeetCode) (leetcode-cn.com)
该题是一个用于帮助我们理解斐波那契的简单题,我将以acm形式打出,其实斐波那契就是后一项等于前两项之和。
#include<bits/stdc++.h>//该程序用来求斐波那契的第n项
using namespace std;
int fib(int n)
{
int f[35];
f[0]=0,f[1]=1;//前两个数比较特殊
for(int i=2;i<=n;i++)
{
f[i]=f[i-1]+f[i-2];//递推公式
}
return f[n];
}
int main()
{
int n;
cin>>n;
cout<<fib(n);
return 0;
}
1137. 第 N 个泰波那契数 - 力扣(LeetCode) (leetcode-cn.com)
是斐波那契的一个类似题
#include<bits/stdc++.h>//与斐波那契数列基本相似
using namespace std;
int tribonacci(int n) {
int t[40];
t[0]=0,t[1]=1,t[2]=1;//特殊情况
for(int i=3;i<=n;i++)
{
t[i]=t[i-1]+t[i-2]+t[i-3];//题中已给递推公式
}
return t[n];
}
int main()
{
int n;
cin>>n;
cout<<tribonacci(n);
return 0;
}
剑指 Offer 64. 求1+2+…+n - 力扣(LeetCode) (leetcode-cn.com)
题中不让用循环,可惜目前我水平有限,改日一定回来不用循环做一遍
#include<iostream>
using namespace std;
int sumNums(int n)
{
int sum=0;
for(int i=1;i<=n;i++)
{
sum+=i;
}
return sum;
}
int main()
{
int n;
cin>>n;
cout<<sumNums(n);
return 0;
}
896. 单调数列 - 力扣(LeetCode) (leetcode-cn.com)
class Solution {
public:
bool isMonotonic(vector<int>& A) {//布尔型,直接判断真假即是不是单调数列
int a=0,b=0;//主要思想就是,这个数列要不单调递增要不就单调递减,否则就不成立
for(int i=1;i<A.size();i++)//所以如果递减就令a=1;反正b=1;
{
if(A[i]>A[i-1]) a=1;
if(A[i]<A[i-1]) b=1;
if(a+b==2) return false;//如果又增又减,不合格,为假
}
return true;
}
};