方法一  用数组开,一般开到1e7,1e8 左右的数组就是极限了   对时间也是挑战

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e8+;
int a[maxn];
int32_t main()
{
a[]=;
a[]=;
for(int i=;i<maxn;i++)
a[i]=a[i-]%+a[i-]%;
cout<<a[maxn-]<<endl;
}

方法二  求第多少个斐波那契数      时间还是个问题

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e8+; int32_t main()
{
int x; x=;
if(x==) cout<<<<endl;
if(x==) cout<<<<endl;
if(x>)
{
int a=;
int b=;
int c=;
for(int i=;i<=x;i++)
{
c=(a+b)%;
a=b%;
b=c;
}
cout<<c<<endl;
}
}

方法三

通项公式             a[n]=1/sqrt(5)  (  ((1+sqrt(5))/2 )^n-((1-sqrt(5))/2)^n  );

这不是重点   重要的是 矩阵 求斐波那契数列

不是很会矩阵    推荐这个博客 https://blog.csdn.net/flyfish1986/article/details/48014523

也可以看我的代码(看了过程再来看比较好)

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int k=1e8;
int fj(int n)
{
if(n==) return ;
int m=n-;
int a11=,a12=,a21=,a22=;
int t1=,t2=;
int b11=,b12=,b21=,b22=;// kau su mi de
while(m)
{
if(m%==)
{
int c11=a11*b11+a12*b21;
int c12=a11*b12+a12*b22;
int c21=a21*b11+a22*b21;
int c22=a21*b12+a22*b22;
a11=c11%k;
a12=c12%k;
a21=c21%k;
a22=c22%k;
m--;
}
else if(m%==)
{
int c11=b11*b11+b12*b21;
int c12=b11*b12+b12*b22;
int c21=b21*b11+b22*b21;
int c22=b21*b12+b22*b22;
b11=c11%k;
b12=c12%k;
b21=c21%k;
b22=c22%k;
m=m/;
}
}
return a11;
} int32_t main()
{
int n;
cin>>n;
int c=fj(n);
cout<<c<<endl;
}

{  f[n+1]  f[n] }  ={ 1 1}  ^n

{  f[n]  f[n-1}     = {1 0}

#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=1e5+;
const int mod=;
int MOD=mod;
struct Matrix {
int a[][];
void init() {
for (int i = ; i < ; i++) {
for (int j = ; j < ; j++)
a[i][j] = ;
}
}
void _init() {
init();
for (int i = ; i < ; i++) a[i][i] = ;
}
}A, B; Matrix mul(Matrix a, Matrix b) {
Matrix ans;
ans.init();
for (int i = ; i <; i++) {
for (int j = ; j < ; j++) {
if(a.a[i][j]) {
for (int k = ; k <; k++) ans.a[i][k] = (ans.a[i][k] + 1LL * a.a[i][j] * b.a[j][k]) % MOD;
}
}
}
return ans;
}
Matrix q_pow(Matrix a, int k) {
Matrix ans;
ans._init();
if(k <= ) return ans;
while(k) {
if(k&) ans = mul(ans, a);
a = mul(a, a);
k >>= ;
}
return ans;
}
int main(){
int n,m;
while(){
scanf("%d",&n); if(n==-) break;
Matrix a; a.init();
a.a[][]=; a.a[][]=;
a.a[][]=;
a=q_pow(a,n);
printf("%d\n",a.a[][]);
}
}

斐波那契数列的生成 %1e8 后的结果的更多相关文章

  1. Android NDK入门实例 计算斐波那契数列一生成jni头文件

    最近要用到Android NDK,调用本地代码.就学了下Android NDK,顺便与大家分享.下面以一个具体的实例计算斐波那契数列,说明如何利用Android NDK,调用本地代码.以及比较本地代码 ...

  2. Android NDK入门实例 计算斐波那契数列二生成.so库文件

    上一篇文章输生成了jni头文件,里面包含了本地C代码的信息,提供我们引用的C头文件.下面实现本地代码,再用ndk-build编译生成.so库文件.由于编译时要用到make和gcc,这里很多人是通过安装 ...

  3. 斐波拉契数列(Fibonacci)--用生成器生成数列

    斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列&qu ...

  4. Python基础(二):斐波那契数列、模拟cp操作、生成8位随机密码

    一.斐波那契数列 目标: 编写fib.py脚本,主要要求如下: 输出具有10个数字的斐波那契数列 使用for循环和range函数完成 改进程序,要求用户输入一个数字,可以生成用户需要长度的斐波那契数列 ...

  5. JavaScript生成斐波那契数列

    常规写法 https://cn.bing.com/search?q=js+fibonacci+sequence&pc=MOZI&form=MOZSBR //Fibonacci func ...

  6. 斐波那契数列 yield 和list 生成

    def fab_demo4(max): a,n,b = 0,0,1 while n < max: yield b # 生成器走到这一步返回b,需要再次调用才能继续执行 a,b = b,a+b n ...

  7. Python(迭代器 生成器 装饰器 递归 斐波那契数列)

    1.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大优 ...

  8. 求斐波那契数列的第n项

    问题描述:斐波那契数列是这样的一个数列,1,1,2,3,5,8,..,即前两项都是1,后面每一项都是其前面两项的和. 现在要你求出该数列的第n项. 分析:该问题是一个经典的数列问题,相信大家在很多语言 ...

  9. javascript . 03 函数定义、函数参数(形参、实参)、函数的返回值、冒泡函数、函数的加载、局部变量与全局变量、隐式全局变量、JS预解析、是否是质数、斐波那契数列

    1.1 知识点 函数:就是可以重复执行的代码块 2.  组成:参数,功能,返回值 为什么要用函数,因为一部分代码使用次数会很多,所以封装起来, 需要的时候调用 函数不调用,自己不会执行 同名函数会覆盖 ...

随机推荐

  1. go中for循环使用多个变量避坑

    go for循环语法为: for expression1, expression2, expression3 { // ... } 使用多个变量时,使用平行赋值,需要留意的是expression3处的 ...

  2. CSS多div放一行

    HTML代码 <body> <div class="right"></div> <div class="left"&g ...

  3. macOS Sierra 如何打开任何来源

    1.打开应用程序-实用工具-终端: 2.复制以下代码(红色处注意是两个-)到终端中,回车(输入电脑密码): sudo spctl --master-disable 3.打开应用程序-系统偏好设置-安全 ...

  4. SQL-21 查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序

    题目描述 查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序CREATE TABLE `employees` (`emp_no` ...

  5. windows下安装cygwin及配置(转)

    reference:https://cygwin.com/install.html 对比:MinGW vs. CygWin    https://www.cnblogs.com/findumars/p ...

  6. kubenetes pv(nfs) pvc 搭建

    1:nfs-server的搭建. install the NFS Server: sudo apt install nfs-kernel-server 2:配置server. vim /etc/exp ...

  7. Oracle学习(四)_SQL函数

    --第一部分:SQL基础 --ch1 简单查询 --ch2 查询基本概念 --ch3 数据过滤 --第二部分:多表操作 --ch4 集合理论 --ch5 内连接 --ch6 外连接 --ch7 子查询 ...

  8. JavaWeb:动作标识

    动作标识 一.包含文件标识<jsp:include> 1.介绍 用于向当前页面中包含其他文件.被包含的文件可以是动态文件,也可以是静态文件 2.语法格式 <jsp:include p ...

  9. 2010年腾讯前端面试题学习(js部分)

    看了牛人写的回忆文章,里面有2010年腾讯的前端面试题,里面涉及到不少基础性的问题,学习一下:) 原文地址:https://segmentfault.com/a/1190000012998107 js ...

  10. python基础题型一

    一.执行Python脚本的两种方式 #python name.py   Python解析器 #chmod +x name.py 二.简述位.字节的关系 1Byte=8bit 三.简述ascii.uni ...