HDU 1715 大菲波数

本文探讨了在数据处理过程中,如何合理设定数据大小、利用结构化数据存储和高效算法实现,以提升处理效率和准确性。通过实例展示了如何在不盲目带入数据的情况下,进行最大数据判断,并详细介绍了BigNumber类的实现,包括赋值、加法运算、清除前导零和打印功能。此外,还提供了动态计算斐波那契数列的方法,并在主函数中进行了输出演示。
部署运行你感兴趣的模型镜像
/*
这道题的收获,当你不知道数据需要定多大时,输出最大数据自己进行一次判断,不要盲目带数据。如①处的语句。
*/
#include <cstdio>
#include <cstring>
const int nMax = 1007;
const int mMax = 250;
struct BigNumber
{
	int data[mMax];
	int len;
	BigNumber(){len = 1; memset(data, 0 ,sizeof(data));}
	BigNumber(char *str){*this = str;}
	BigNumber &operator=(char *str);
	BigNumber operator+(BigNumber &a);
	void clearLeadZero();
	void print();
}F[nMax];
BigNumber & BigNumber::operator =(char *str)
{
	memset(data, 0, sizeof(data));
	len = strlen(str);
	int i;
	for(i = 0; i < len; ++ i)
		data[i] = str[len - i - 1] - '0';
	return *this;
}
BigNumber BigNumber::operator +(BigNumber &a)
{
	BigNumber z;
	int i, j, q;
	q = 0;
	for(i = 0, j = 0; q || i < len || j < a.len; ++ i, ++ j)
	{
		int p = data[i] + a.data[j] + q;
		z.data[i] = p % 10;
		q = p / 10;
	}
	z.len = i;
	z.clearLeadZero();
	return z;
}
void BigNumber::clearLeadZero()
{
	while(len > 1 && !data[len - 1]) -- len;
}
void BigNumber::print()
{
	int i;
	for(i = len - 1; i >= 0; -- i)
		printf("%d", data[i]);
	printf("\n");
}
bool isZero(int pi)
{
	if(F[pi].data[0] == 0 && F[pi].len == 1)
		return 1;
	return 0;
}
BigNumber &f(int pi)
{
	if(!isZero(pi)) return F[pi];
	if(pi == 1 || pi == 2) F[pi] = "1";
	else
		F[pi] = f(pi - 1) + f(pi - 2);
	return F[pi];
}
int main()
{
	freopen("f://data.in", "r", stdin);
	int T;
	scanf("%d", &T);
	int N;
	while(T--)
	{
		scanf("%d", &N);
		f(N);
		F[N].print();
		//printf("%d\n",F[N].len);//①
	}	
	return 0;
}

您可能感兴趣的与本文相关的镜像

AutoGPT

AutoGPT

AI应用

AutoGPT于2023年3月30日由游戏公司Significant Gravitas Ltd.的创始人Toran Bruce Richards发布,AutoGPT是一个AI agent(智能体),也是开源的应用程序,结合了GPT-4和GPT-3.5技术,给定自然语言的目标,它将尝试通过将其分解成子任务,并在自动循环中使用互联网和其他工具来实现这一目标

内容概要:本文提出了一种基于融合鱼鹰算法和柯西变异的改进麻雀优化算法(OCSSA),用于优化变分模态分解(VMD)的参数,进而结合卷积神经网络(CNN)与双向长短期记忆网络(BiLSTM)构建OCSSA-VMD-CNN-BILSTM模型,实现对轴承故障的高【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储学数据】(Matlab代码实现)精度诊断。研究采用西储学公开的轴承故障数据集进行实验验证,通过优化VMD的模态数和惩罚因子,有效提升了信号分解的准确性与稳定性,随后利用CNN提取故障特征,BiLSTM捕捉时间序列的深层依赖关系,最终实现故障类型的智能识别。该方法在提升故障诊断精度与鲁棒性方面表现出优越性能。; 适合人群:具备一定信号处理、机器学习基础,从事机械故障诊断、智能运维、工业数据分析等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决传统VMD参数依赖人工经验选取的问题,实现参数自适应优化;②提升复杂工况下滚动轴承早期故障的识别准确率;③为智能制造与预测性维护提供可靠的技术支持。; 阅读建议:建议读者结合Matlab代码实现过程,深入理解OCSSA优化机制、VMD信号分解流程以及CNN-BiLSTM网络架构的设计逻辑,重点关注参数优化与故障分类的联动关系,并可通过更换数据集进一步验证模型泛化能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值