大斐波那契数

【教程4>第5章>第28节】基于帧同步+相位同步+位同步的QPSK调制解调通信系统整体性能分析 综上所述:1.SNR<10db时,整体性能下降,当SNR=0db时,系统无法正常工作。2.gardner环性能达到2.5e-5时偏可以正常工作,增加之后无法正常工作。3.当相位偏差大于pi/4的时候,对最后的性能会有一定影响。 阅读详情

斐波那契数计算公式  :

f(n)=f(n-1)+f(n-2)        (n>=3)

f(1)=1

f(2)=1

对于 n 比较小的情况下,下边的程序就可以实现这个功能

#include<cstdio>
#define ll long long 
const int n=100;
int main() 
{
	ll a[n];
	a[2]=1;a[1]=1;
	for(int i=3;i<n;i++)
		a[i]=a[i-1]+a[i-2];
	for(int i=1;i<n;i++)
		printf("%d   %lld\n",i,a[i]);
	return 0;
}

 

结果如下:

 

 

请注意,当 n = 92的时候,结果还是正确的,但是 n 一旦超过92.long long 类型就无法储存这么大的数了

 

溢出了,所以我们需要寻找新的方法来计算 n 比较大的时候那些情况的斐波那契数

我们需要用到模拟的思想,开一个比较大的二维数组来储存每一个斐波那契数,再让它们的每一位相加最后得出的结果就是答案了,详情请看代码,

/*
  大斐波那契数 

*/
#include<cstdio>
#include<cstring>
#define ll long long
const int MAXN=1e4+3;
const int c=10000;
ll a[MAXN][MAXN];
int main()
{
	int n;
	while(~scanf("%d",&n))
	{
		a[1][0]=1;a[2][0]=1;//初始化 第一个数和第二个数 
		int dight=0;//斐波那契数的 位数 
		int temp=0;//储存进位
		for(int i=3;i<=n;i++)	//从3算到N
		{
			temp=0;//进位每次计算都要初始化为0
			for(int j=0;j<=dight;j++)
			{
				a[i][j]=a[i-1][j]+a[i-2][j]+temp;
				temp=a[i][j]/10;
				a[i][j]%=10;
			 } 
			if(temp)//如果有进位的话 
			{
				dight++;//位数加一 
				a[i][dight]=temp;//给最高位赋值 
			}
		 } 
		for(int i=dight;i>=0;i--)//逆序输出这个数组 
			printf("%lld",a[n][i]);//n代表是第n个斐波那契数,i是这个数的第i位 
		printf("\n");			
	}
	return 0;
}

应该可以把这个代码优化一下,以便于计算更大的数

 

/*
  大斐波那契数 

*/

//这段代码让每一个a[i][j]的值都是9位 
#include<cstdio>
#include<cstring>
#define ll long long
const int MAXN=1e4+3;
const int c=1e9;
ll a[MAXN][MAXN];
int main()
{
	int n;
	while(~scanf("%d",&n))
	{
		a[1][0]=1;a[2][0]=1;
		int temp=0;
		int d=0;
		for(int i=3;i<=n;i++)
		{
			temp=0;
			for(int j=0;j<=d;j++)
			{
				a[i][j]=a[i-1][j]+a[i-2][j]+temp;
				temp=a[i][j]/c;
				a[i][j]%=c;
			}
			if(temp)
			{
				d++;
				a[i][d]=temp;
			}	
		}	
		printf("%lld",a[n][d]);
		for(int i=d-1;i>=0;i--)
			printf("%010lld",a[n][i]);
		printf("\n");
	}
	return 0;
}

可以来这里联系一下:HDU_1715

 

AC代码如下:

 

#include<cstdio>
#include<cstring>
const int MAXN=1004;
int a[MAXN][MAXN];
int main()
{
	int t,n;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		a[1][0]=1,a[2][0]=1;
		int d=0;
		int temp=0;
		for(int i=3;i<=n;i++)
		{
			temp=0;
			for(int j=0;j<=d;j++)
			{
				a[i][j]=a[i-1][j]+a[i-2][j]+temp;
				temp=a[i][j]/10;
				a[i][j]%=10;
			}
			if(temp)
			{
				d++;
				a[i][d]=temp;
			}
		}
		for(int i=d;i>=0;i--)
			printf("%d",a[n][i]);
		printf("\n");
	}
	return 0;
}

 

大斐波那契数和大数阶乘的思想是一样的,不同的是大数阶乘只用了一维数组,比这个要简单一些

 

 

Java 代码:

import java.math.*;
import java.util.*;
public class Main{
	public static void main(String[] args){
		Scanner cin = new Scanner(System.in);
		BigInteger[] a;
		a = new BigInteger[2000];
		a[0] = BigInteger.ZERO;
		a[1] = BigInteger.ONE;
		for(int i=2;i<1005;i++)
			a[i] = a[i-1].add(a[i-2]);
		int  n = cin.nextInt();
		while(n-->0){
			int i = cin.nextInt();
			System.out.println(a[i]);
		}
	}
}

 

在下实力有限,如有错误请您指出,谢谢

【txt文本加密】使用 cryptography 库实现加密和解密 cryptography 库是一个强大的 Python 库,用于实现加密和解密功能。它提供了各种加密算法,包括对称加密、非对称加密、哈希函数等。 阅读详情

相关推荐

告别密码烦恼:用Windows Server NPS给公司Wi-Fi和有线网加一道MAC地址白名单(附H3C交换机配置)

本文详细介绍了如何利用Windows Server NPS(网络策略服务器)与H3C交换机实现MAC地址白名单认证,为企业Wi-Fi和有线网络提供零密码安全方案。通过配置NPS服务器、网络策略及H3C交换机联调,实现无感知认证体验,降低运维负担,同时满足审计追溯需求。适用于中小企业网络管理,提升安全性与便捷性。

weixin_42535703的博客 367

大数斐波那契问题

大数斐波那契问题 问题描述:斐波那契问题:有一串数列,第一个数和第二个数为1,从第三个数开始,其值为前面两个数之和,例如:1,1,2,3,5,8,......求该数列第n个数的值为多少 算法思路:最简单的方法是直接利用递归来进行两个数的相加,但用int型数据类型来存结果会面临一个问题,那就是数值溢出,就算用long来存数据也会面临溢出的危机,因为当n等于110的时候,数值大得惊人,为43566

麻豆_matou 697

【小白指南】如何将deepseek引入WPS\Word\Excel中去?

如何将deepseek引入WPS\Word\Excel中去?纯小白都能看的懂,一步步操作就能行

2503_90498422的博客 1万+

OJ1293: 大斐波数

【题目描述】 Fibonacci数列,定义如下: f(1)=f(2)=1 f(n)=f(n-1)+f(n-2) n>=3。 计算第n项Fibonacci数值。 【输入】 输入第一行为一个整数N,接下来N行为整数Pi(1<=Pi<=1000)。 【输出】 输出为N行,每行为对应的f(Pi)。 【样例输入 】 5 ...

theory and practice的博客 477

基于mediapipe的动作捕捉和unity的人物模型驱动

用到的人体关键点检测的算法是Google开发的基于深度学习的实时多媒体套件,汇集了人体、手部、人脸关键点追踪、物体检测、物体识别等多个流行的视觉任务的成果。整套 Mediapipe正如其名字,专门为便携设备上的多媒体应用设计,模型非常小,在笔记本手机上也能实时跑,跨平台、跨语言。mediapipe实时性是没什么问题。但是是以牺牲了质量为代价的,这种关键点检测一般是用来做动作识别,类似于运动app跳绳计数、判定瑜伽动作标不标准这种。用单目视觉来做人物模型的驱动,总差点意思。

qq_58484580的博客 5727

【Lua面试】2021年Lua面试题分享(4.25更新)

lua深拷贝和浅拷贝的区别?如何实现深拷贝? lua中ipairs和pairs的区别? 链接: link.

qq_21407523的博客 2万+

【C语言】printf函数详解

C语言printf函数详解 一、相关基础知识 请求printf()打印变量的指令取决于变量的类型,例如打印整数用%d符号,打印字符用%c符号,这些符号称为转换说明(conversionspecification),因为它们指定了如何把数据转换成可显示的形式 二、具体内容...

diezhongchen8956的博客 715

MATLAB计算干旱指标:SPI、SRI、SWAP、DWAAI、EDI等

简介各种干旱指数以及其MATLAB代码实现

WW、forever的博客 2万+

大斐波那契数列(C++类)

Problem E: 大斐波那契数列 Description 斐波那契数列,又称黄金比例数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F[0]=0,F[1]=1,F[n]=F[n-1]+F[n-2](n>=2,n∈N*)。总之斐波纳契数列有很多应用,现在你能用类的方法实现吗? Input 没有输入

u013629228的专栏 2938

《时序分析、时序约束和时序收敛》专栏的说明与导航

《时序分析、时序约束和时序收敛》专栏的说明与导航(建议阅读)。

孤独的单刀 14万+

【物联网技术】ESP8266 ESP-01/01s 固件下载烧录+STM32串口通信接线

ESP8266 ESP-01/01s 工作模式接线与MQTT固件下载烧录接线

嵌入式阿齐Archie 3万+

Colossal Fibonacci Numbers! 巨大的斐波那契数 UVA - 11582

给你a b n,然后让你计算f(a^b)%n的值 这个题做了蛮久。首先是对这么大的数不知所措。计算f(a^b)%n,首先a^b,就已经很大了好吧,其中0<=a,b<2e64,都超过long long 的范围了。然后参考了下dalao 们的博客,这个主要是发现斐波那契数列模上一个数之后,是会出现循环的。因为f[i]是由f[i-1],f[i-2]推出来的,如果f[i-1]和f[i-2]出现过了,即出现

bllsll 561

基于DNN神经网络的多输入多输出数据回归预测(附带Matlab代码)

假设我们的输入数据包含n个特征,输出数据包含m个特征。在本文中,我们将介绍如何使用DNN(深度神经网络)实现多输入多输出数据回归预测,并提供相应的Matlab代码。需要注意的是,上述代码中的DNN模型是一个简化的示例,您可以根据实际任务的复杂程度和要求进行相应的调整和优化。综上所述,我们介绍了如何使用DNN神经网络实现多输入多输出数据回归预测,并提供了相应的Matlab代码。函数对DNN模型进行训练,其中输入数据需要转置,以适应网络的输入要求。最后,我们使用训练好的模型对测试数据进行预测,并打印预测结果。

DevWizard的博客 1067

HHUOJ 1387 大斐波那契数

HHUOJ 1387 大斐波那契数 题目描述 定义: f(1)=1, f(2)=1, f(n>2)=f(n-1)+f(n-2) 我们把符合以上定义的序列称为斐波那契序列,现在给你一个数字n,请你求出f(n)。 输入 输入包含多组测试数据。每组数据为一个正整数n。 输出 输出对应的f(n)。题目保证结果不会超过1000位数字。 样例输入 100 样例输出 3542248481792619...

旺崽的博客 1135

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

HDU1715--第i个斐波那契数 大菲波数

HDU1715:大菲波数 求第i个斐波那契数问题(与HDU1316类似,但更简单): 总结: 数组开多大?题目中让求的最大的是第1000个斐波那契数是多少,由于f[0]不用,所以数组开到1001。 import java.util.Scanner; import java.math.BigInteger; public class Main { public static void main...

匿名攻城狮 729

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

UVA 11582 Colossal Fibonacci Numbers! 大斐波那契数

大致题意:输入两个非负整数a,b和正整数n。计算f(a^b)%n。其中f[0]=f[1]=1, f[i+2]=f[i+1]+f[i]. 即计算大斐波那契数再取模。 一开始看到大斐波那契数,就想到了矩阵快速幂,输出等了几秒钟才输出完,肯定会超时。因为所有计算都是要取模的,设F[i]=f[i] mod n。F[0]=F[1]=1。只要出现F[i]=F[i+1]=1,那么整个序列就会重复。例如n=3,...

weixin_33943347的博客 87

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

大斐波那契数(大数加法的思想+预处理提前实现)

解题思路:斐波那契,我们很熟悉的问题,但是这道题和平常不一样,这道题的数据非常大,用我们一般用的递归或者递推的方法不仅时间复杂度低效,精度也根本达不到那个数据要求的深度。 本题中要求求到1000个斐波那契数,要知道第1000个斐波那契数的位数是非常非常多的,普通的数据类型是不可能做到的,所以就要用到大数加法的思想。 代码如下: #include&lt;stdio.h&gt; #incl...

qq_41200060的博客 1650

POJ 3070 + 51Nod 1242 大斐波那契数取余

POJ 3070 #include "iostream" #include "cstdio" using namespace std; class matrix { public: int a[2][2]; matrix() { a[0][0]=a[1][0]=a[0][1]=1; a[1...

weixin_30847271的博客 200

矩阵快速幂(大斐波那契数)

矩阵快速幂就是把快速幂的乘法变成矩阵乘法。 应用:求斐波那契数取模(大数) 斐波那契数列递推公式(这里取从第二项开始):f(1)=1,f(2)=2,f(n)=f(n-1)+f(n-2)(n&gt;=3)  用矩阵表示为: 进一步,可以得出直接推导公式: 求第n项斐波那契数就是求 1 1 1 0的(n-1)次方的第一行第一列项,也就是n次方的第一行第二列项 #include&...

沉默的大多数 3352

2.大斐波那契数

#include<iostream> #include<cstring> using namespace std; const int len = 1000; //每行为一个斐波那契数 int arr[len][len]{ 0 }; int main() { arr[1][0] = 1; arr[2][0] = 1; int n, dight = 0, temp; //dight 记录位数 cin >> n; ...

稳健的我的博客 170

大斐波那契数杭电1250

 Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9518    Accepted Submission(s): 3135 Problem Description A Fibonacci 

mengxiang000000 593

php求大斐波那契数 代码,php求斐波那契数的两种实现方式【递归与递推】

本文实例讲述了php求斐波那契数的两种实现方式。分享给大家供大家参考,具体如下:斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2...

weixin_39585675的博客 131

1260-Problem C-大斐波那契数-入门题-大数-C++实现

问题 C: 大斐波那契数 时间限制:1Sec内存限制:32 MB 提交:47解决:9 题目描述 定义: f(1)=1, f(2)=1, f(n>2)=f(n-1)+f(n-2) 我们把符合以上定义的序列称为斐波那契序列,现在给你一个数字n,请你求出f(n)。 输入 输入包含多组测试数据。每组数据为一个正整数n。 输出 输出对应的f(n)。题目保证结果不会超过1...

weixin_31789689的博客 489

uva-1646-大斐波那契数

我觉得凡是能枚举几个n的答案的题都要枚举下看看有木有规律,然后发现是斐波那契数,然后正好前两天学了下大整数类,然后就第一次用Java A题,然后感觉美滋滋2333。 import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args)

alusang的博客 446

php求大斐波那契数 代码,php实现斐波那契数列代码的分享

这篇文章主要介绍了php实现斐波那契数列代码分享,具有一定借鉴价值,需要的朋友可以参考下。斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........这个数列从第3项开始,每一项都等于前两项之和。F0=0,F...

weixin_32148861的博客 285

C语言大数运算:高效处理大阶乘与斐波那契数的终极指南

在C语言编程中,处理大阶乘和斐波那契数等超大数值一直是开发者面临的挑战。本指南将带你探索如何在C语言中高效实现大数运算,轻松应对超大数值计算难题。无论是科学计算还是工程应用,掌握这些技巧都能让你的程序性能得到质的飞跃。 ## 为什么需要特殊处理大数运算? C语言的基本数据类型如`int`和`long`都有固定的取值范围,当计算超过其上限的数值时就会发生溢出。例如,32位`int`类型只能表示到

gitblog_00425的博客 1011
上一篇: FZUProblem 2266 Card Game (Third Edition)
下一篇: dijkstra求最短路径入门 POJ2387
陶鸿杰
博客等级 码龄9年 93粉丝 298原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值