斐波那契数列的定义如下:   F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2)   (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ...) 给出n,求F(n),由于结果很大,输出F(n) % 1000000009的结果即可.   输入 输入1个数n(1 <= n <= 10^18). 输出 输出F(n) % 1000000009的结果. 输入样例 11 输出样例 89解…
之前一直没敢做矩阵一类的题目 其实还好吧 推荐看一下 : http://www.cnblogs.com/SYCstudio/p/7211050.html 但是后面的斐波那契 推导不是很懂  前面讲的挺好的 后来看到了 http://blog.csdn.net/flyfish1986/article/details/48014523 相当于  是一个那个东西的k-1次方  而且由于 F(1) = 1 所以直接求k-1次方就可以了 #include<bits/stdc++.h> using nam…
#include <iostream> #include <algorithm> using namespace std; typedef long long LL; ; ; struct Matrix { LL v[maxn][maxn]; }; //矩阵间的乘法 Matrix matrix_mul(Matrix A, Matrix B){ Matrix ans; ; i < maxn; i++){ ; j < maxn; j++){ ans.v[i][j] = ;…
普通算法肯定T了,所以怎么算呢?和矩阵有啥关系呢? 打数学符号太费时,就手写了: 所以求Fib(n)就是求矩阵  |  1  1  |n-1  第一行第一列的元素. |  1  0  | 其实学过线代的同学应该一看就看出来了,然鹅我还没学,所以不得不写几个不必要的等式=.= #include<iostream> #include<cstdio> using namespace std; #define ll long long #define INF 1000000009 ll n…
题目:http://poj.org/problem?id=3070 用矩阵快速幂加速递推. 代码如下: #include<iostream> #include<cstdio> #include<cstring> using namespace std; ; struct Matrix{ ][]; Matrix operator * (const Matrix &y) const { Matrix x; memset(x.a,,sizeof x.a); ;i<…
1242 斐波那契数列的第N项  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题   斐波那契数列的定义如下:   F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2)   (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ...) 给出n,求F(n),由于结果很大,输出F(n) % 1000000009的结果即可.   Input 输入1个数n(1 <…
1242 斐波那契数列的第N项  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2) (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ...) 给出n,求F(n),由于结果很大,输出F(n) % 1000000009的结果即可. Input 输入1个数n(1 <…
题目: 1242 斐波那契数列的第N项 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2) (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, -) 给出n,求F(n),由于结果很大,输出F(n) % 1000000009的结果即可. Input 输入1个数n(1 <=…
.获得用户的输入 计算      3打印就行了.   这里用到了java.util.Scanner   具体API  我就觉得不常用.解决问题就ok了.注意的是:他们按照流体的方式读取.而不是刻意反复读取 自己写的代码: package com.itheima; import java.util.Scanner; public class Test3 { /** * 3.求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55 * * @author…
<script>// 算法题 // 题1:斐波那契数列:1.1.2.3.5.8.13.21...// // 一.斐波那契数列第n项的值 // // 方法一//递归的写法function a(n){ if(n <= 2) { return 1; } return a(n-1) + a(n-2);}alert(a(8)); // 方法二//通过迭代的方式function b(n){ var num1 = 1; var num2 = 1; var num3 = 0; if(n<=0){…
打印斐波拉契数列前n项 #encoding=utf-8 def fibs(num):    result =[0,1]    for i in range(num-2):        result.append(result[-2]+result[-1])    return resultprint fibs(10) 结果:…
斐波那契数列是一个常识性的知识,它指的是这样的一个数列,它的第一项是1,第二项是1,后面每一项都是它前面两项的和,如:1,1,2,3,5,8,13,21,34,55,89,144,233…… 说明:由于通过递推方式效率低,系统开销大,空间复杂度高,故不考虑. /*斐波那契数列:第一项和第二项为1,后面各项是其前面两项之和*/ /*编写一个函数,输入整数n,求该项的值*/ #include<iostream> using namespace std; int fibonacci(int n) {…
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <p>斐波那契数列:1,1,2,3,5,8,13,21,34,55,89,144........... </p> <p>求斐波那契数列第n项的值</p> </body&…
# 斐波那契数列第n项 # 1 1 2 3 5 8 def fib(n): if n <= 2: return 1 else: return fib(n-2)+fib(n-1) def fib2(n): if n < 3: return 1 f1 = f2 = 1 for k in range(1, n-1): f1, f2 = f2, f2+f1 return f2 if __name__ == '__main__': # 1 1 2 3 5 8 13…
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1242 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 斐波那契数列的定义如下:   F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2)   (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ...) 给出n,求…
斐波那契数列的定义如下:   F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2)   (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ...) 给出n,求F(n),由于结果很大,输出F(n) % 1000000009的结果即可.   Input输入1个数n(1 <= n <= 10^18).Output输出F(n) % 1000000009的结果.Sample Input…
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 斐波那契数列求和 { class Program { static void Main(string[] args) { Console.WriteLine()); Console.WriteLine()); Console.WriteLine()…
题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 为整数). 题目描述 请你求出第n个斐波那契数列的数mod(或%)2^31之后的值.并把它分解质因数. 输入输出格式 输入格式: n 输出格式: 把第n个斐波那契数列的数分解质因数. 输入输出样例 输入样例#1: 复制 5 输出样例#1: 复制 5=5 输入样例#2: 复制 6 输出样例#2: 复制 8=2*2*2 说明…
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <script> //需求:封装一个函数,求斐波那契数列的第n项 alert(getValue()); //定义一个函数 function getValue(n){ //回顾…
1. 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).n<=39 2. 思路和方法 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1.1.2.3.5.8.13.21.34.……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1…
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:fib.cpp * 作者:常轩 * 微信公众号:Worldhello * 完成日期:2016年3月23日 * 版本号:V1.0 * 问题描述:求斐波那契数列的第20项 * 程序输入:n * 程序输出:见运行结果 */ #include<iostream> using namespace std; int fib(int n); int main() { cou…
矩阵快速幂 定义矩阵A(m*n),B(p*q),A*B有意义当且仅当n=p.即A的列数等于B的行数. 且C=A*B,C(m*q). 例如: 进入正题,由于现在全国卷高考不考矩阵,也没多大了解.因为遇到了斐波那契这题... 注意到: Fn+1=Fn+Fn-1 我们会有: 则: 所以我们只需要想办法求矩阵A的幂,这时候我们当然想要用快速幂. 代码部分: 定义矩阵: struct matrix{ ll a[][]; }; (类比整数的快速幂)预处理: [我们需要一类似于1的矩阵:] 『1 0 0 0…
题目描述 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下图所示 N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不同的3轮状病毒,如下图所示 解法 一开始看到这道题以为是组合数,求\(C^{n-1}_{n+1}\),但是在这个图上可能会出现环,我们需要保证所有的答案都是能够联通所有的点,那么就不能这样做. 那么我们就打一…
参考: https://blog.csdn.net/xuzhangze/article/details/78568702 波那契数列数列从第3项开始,每一项都等于前两项之和.即 第n项的值为  (n-1) + (n-2) 例如:数列 1, 1, 2, 3, 5, 8, 13, 21 方法一: function fo(n) { ) { ; }else{ ) + fo(n - ); } } 方法二: function fo(first, second, n) { ) { return second;…
n = int(input("Input N: ")) a = 0 b = 1 sum = 0 for i in range(n): sum += a a, b = b, a + b print("The sum of", n, "FIB is", sum,"!")…
第一种求法: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script> var num = [0,1]; function figure(){ if(num.length < N){ var newN…
static void Main(string[] args) { int a = Convert.ToInt32(Console.ReadLine()); //求第n位数字是多少 Console.WriteLine(F1(a)); //求前n项的和 Console.WriteLine(sum(a)); Console.ReadKey(); } /// <summary> /// 求第n位的数是几 /// </summary> /// <param name="a&…
.model small ;递归fib,使用压缩BCD码,小端派 .data y1 byte 6 dup(0) y2 byte 6 dup(0) vis byte 1,1,1,61 dup(0) ;便于调试 num byte 6 dup(0),1,5 dup(0),1, 5 dup(0), 300 dup(0) ;di .stack 4096 .code main proc far start: mov ax,@data mov ds,ax mov ax,50 call fib mov bx,o…
题目 P1349 广义斐波那契数列 解析 把普通的矩阵乘法求斐波那契数列改一改,随便一推就出来了 \[\begin{bmatrix}f_2\\f_1 \end{bmatrix}\begin{bmatrix} p&q\\ 1&0\\ \end{bmatrix}^{n-2}=\begin{bmatrix}f_n\\f_{n-1} \end{bmatrix}\] 水题 代码 #include <bits/stdc++.h> #define int long long using na…
1242 斐波那契数列的第N项 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 斐波那契数列的定义如下:   F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2)   (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ...) 给出n,求F(n),由于结果很大,输出F(n) % 1000000009的结果即可.   Input 输入1个数n…