斐波那契数列的3种求法及几种素数筛法
递推法
#include<stdio.h>
long long sum[40];//也可以不用开数组
int main()
{int n;scanf("%d",&n);sum[1]=1;sum[2]=1;for(int t=3;t<=n;t++){sum[t]=sum[t-1]+sum[t-2];}printf("%lld",sum[n]);return 0;
}
递归法
#include<stdio.h>
long long F(int x)
{if(x==1||x==2){return 1;}else{return F(x-1)+F(x-2);}
}
int main()
{int n;scanf("%d",&n);printf("%lld",F(n));return 0;
}
矩阵快速幂法
#include<stdio.h>
#include<string.h>
#define MOD 1000000007
struct Mat
{long long a[5][5];
};
Mat res,ans;
Mat Mul(Mat x,Mat y)
{Mat s;memset(s.a,0,sizeof(s.a));for(int t=0;t<2;t++){for(int j=0;j<2;j++){for(int k=0;k<2;k++){s.a[t][j]+=x.a[t][k]*y.a[k][j];s.a[t][j]%=MOD;}}}return s;
}
void init()
{for(int t=0;t<2;t++){for(int j=0;j<2;j++){if(t==j){ans.a[t][j]=1;}else{ans.a[t][j]=0;}}}
}
void Quick_pow(long long n)
{init();while(n){if(n&1){ans=Mul(ans,res);}res=Mul(res,res);n>>=1;}
}int main()
{long long n;while(scanf("%lld",&n)!=EOF){res.a[0][0]=1;res.a[0][1]=1;res.a[1][0]=1;res.a[1][1]=0;Quick_pow(n-1);printf("%lld\n",ans.a[0][0]);}return 0;
}
素数筛法
埃氏筛法:
#include<stdio.h>
#include<string.h>
#define maxn 100005
bool vis[maxn];
int Prime[maxn];
void Prime_E(int x){for(int t=2;t<=x;t++){if(vis[t]==true){for(int j=2*t;j<=x;j+=t){vis[j]=false;}}}
}
int main()
{int n;scanf("%d",&n);memset(vis,true,sizeof(vis));Prime_E(n);for(int t=2;t<=n;t++){if(vis[t]==true){printf("%d ",t);}}return 0;
}
欧拉筛法
#include<stdio.h>
#include<string.h>
#define maxn 100005
bool vis[maxn];
int prime[maxn];
void oula() {int cnt=0;memset(prime,0,sizeof(prime));memset(vis,false,sizeof(vis));for(int t=2; t<maxn; t++) {if(!vis[t])prime[cnt++]=t;for(int j=0; j<cnt&&t*prime[j]<maxn; j++) {vis[t*prime[j]]=true;if(t%prime[j]==0)break;}}
}
int main()
{int n;scanf("%d",&n);oula();for(int t=2;t<=n;t++){if(vis[t]==false){printf("%d ",t);}}return 0;
}
转载于:https://www.cnblogs.com/Staceyacm/p/10781783.html
斐波那契数列的3种求法及几种素数筛法相关推荐
- Interview:算法岗位面试—上海某公司算法岗位(偏机器学习,互联网金融行业)技术面试考点之数据结构相关考察点—斐波那契数列、八皇后问题、两种LCS问题
ML岗位面试:上海某公司算法岗位(偏机器学习,互联网金融行业)技术面试考点之数据结构相关考察点-斐波那契数列.八皇后问题.两种LCS问题 Interview:算法岗位面试-上海某公司算法岗位(偏机器学 ...
- 求解斐波那契数列(Fibonacci Numbers)算法居然有9种,你知道哪几种吗?
By LongLuo 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为&q ...
- 递归与迭代 | 求斐波那契数列第n项值的四种算法
前言: 昨儿晚上三点多睡不着,不知道胡思乱想了些啥,好不容易睡着了又做了些稀奇古怪的梦.考研还是继续,真难. 这一篇博客记录一下求斐波那契数列第n项值得几种方法,用到了递归和迭代的方法,所以首先我们来 ...
- c语言编程斐波那契前n项,c语言:写一个函数,输入n,求斐波拉契数列的第n项(5种方法,层层优化)...
写一个函数,输入n,求斐波拉契数列的第n项. 斐波拉契数列:1,1,2,3,5,8...,当n大于等于3时,后一项为前面两项之和. 解:方法1:从斐波拉契数列的函数定义角度编程 #include in ...
- C#,斐波那契数列(Fibonacci Sequence)的八种算法与源代码
一.莱昂纳多·斐波那契(Leonardo Fibonacci) 斐波那契公元1170年生于意大利比萨,卒于1250年,被人称作"比萨的莱昂纳多",是一名闻名于欧洲的数学家,其主要的 ...
- 递推公式斐波那契数列的几种求法
什么是递推公式 递推公式就是形如斐波那契数列那样,每一项都由前面几项运算求得 下面以斐波那契数列为例讲解递推公式的几种求解方法 斐波那契数列 斐波那契数列形式如下: F(n)={1n=11n=2F(n ...
- 7、斐波那契数列、跳台阶、变态跳台阶、矩形覆盖------------剑指offer系列
题目:斐波那契数列 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). f(n) = f(n-1) + f(n-2) 基本思路 这道题在剑指offe ...
- python侯先生爬楼梯_经典算法题:爬楼梯 ,以斐波那契数列来解题代码案例
网上这题的解题思路主要有两种:动态规划 斐波那契数列 因为我们用斐波那契数列来解,所以我主要描述方法2. 斐波那契数列 又称 兔子数列, 指得是:1.1.2.3.5.8.13.21.--, 在数学上它 ...
- 实现斐波那契数列(js),以及复杂度降阶
##实现斐波那契数列(js),以及复杂度降阶 ###背景--兔子数列 假设第1个月有1对刚诞生的兔子,第2个月进入成熟期,第3个月开始生育兔子,而1对成熟的兔子每个月会生1对兔子,兔子永远不会死去** ...
- 斐波那契数列的四种实现
来自:Crossin的编程教室 孔乙己自己知道不能和他们谈天,便只好向 Intern 说话.有一回对我说道,"你写过代码么?"我略略点一点头.他说,"写过代码,--我便考 ...
最新文章
- 神经网络理论基础及Python实现
- css 带轮廓的圆,CSS3 圆球轮廓动画
- css盒模型中margin很牛逼
- [转]学习object-c,补习一下指针
- 全球首发!惯性导航导论(剑桥大学)第八部分
- 如何在同一Linux服务器上创建多站点
- CNN卷积神经网络(二)
- Smarty下载和安装
- 拉登是我罩的队_软件需求规格说明书
- 夏至海报设计素材,都分享在这里了
- 解决局域网电脑无法ping通
- 刷完 900 多道算法题的首次总结:LeetCode 应该怎么刷?
- 找出java重复字符串,java 找出字符串出现重复的字符和次数
- 流媒体协议RTP、RTCP、H264详解
- 多次办理这项公积金业务都涉及到查询信用报告,是否会影响将来申请贷款?
- angular快速入门教程
- 高德地图 API,点击地图标记获取自定义标记 (Marker) 中的信息
- 山沟沟里的实业路(4)
- html5 制作 蓝色按钮,一组黑色质感的蓝色荧光3D按钮和单选按钮
- 中国制造2025大论战 到底能否弯道超车?
热门文章
- 使用率激增250%,这份报告再次将 Serverless 推向幕前
- 和你谈谈数据分析报告
- 对话阿里巴巴贾扬清:如何成为一名优秀的 AI 架构师?
- 文件按m3u8顺序合并_在线视频下载之m3u8篇
- ajax将数据显示在class为content的标签中_python selenium:自动化爬取某鱼数据
- 你们的蛙儿子成马云儿子了 阿里巴巴获得《旅行青蛙》独家代理权
- 创作一个数字人,总共分几步?(上)
- Java计算一段程序的运行时间
- Java模板引擎之freemarker简介
- [故障公告]14:40-15:00博客站点web服务器雪崩似的CPU 100%