方法一  用数组开,一般开到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. js如何生成一个对象,并转化为json字符串

    js如何生成一个对象,并转化为json字符串,很多人都会误写为: var ary = []; var obj = {}; for (var i = 0; i < 3; i++) { obj.na ...

  2. 【转载】linux Jumpserver跳板机堡垒机部署安装使用教程

    原文地址:https://idc.wanyunshuju.com/li/554.html

  3. Python Select模型(程序流程)(转)

    缘由 之前写socket的CS模型代码,都是利用最原始的多线程方式.服务端是主线程,接到客户端的连接请求就从线程池中获取一个线程去处理整个socket连接的所有操作,虽然在连接数较短的情况下没有什么影 ...

  4. 5.10 C++内存管理操作符重载

    参考:http://www.weixueyuan.net/view/6388.html 注意: 内存管理操作符new.new[].delete和delete[]同样也可以进行操作符重载,其重载形式既可 ...

  5. SharePoint Framework 企业向导(五)

    博客地址:http://blog.csdn.net/FoxDave SPFx解决方案是如何被构建出来的--很重要 SPFx为SharePoint开发者在设计.编译和部署SharePoint自定义解 ...

  6. Mybatis级联,使用JOIN和Associa,以及一些ID覆盖和自动变换。

    先说下坑,比如数据库的字段是 DW_ID  ,用generator讲mybatis自动转换的时候,会省略下表_变成dwId,所以我们之后自己手动设计的时候也尽量换成dwId: generate的myb ...

  7. Oracle function和procedure

    1.返回值的区别 函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有 2. 调用的区别,函数可以在查询语句中直接调用,而存储过程必须单独调用. 函数:一般情况下是用来计算并返回一个计算结 ...

  8. <Dr.Elephant><How to tune ur application>

    Why Dr.Elephant? Most of Hadoop optimization tools out there, but they are focused on simplifying th ...

  9. 高级数据类型--列表[list]

    List(列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组,专门用于存储 一串 信息,列表用 [] 定义,数据 之间使用 , 分隔,列表的 索引 从 0 开始. nam ...

  10. L327 找灵魂伴侣

    Looking for the Perfect Partner I'm sure we all remember a time when we fell in love. For some it wa ...