蓝桥杯真题 数列求值(超范围)(好好审题啊喂)

蓝桥杯真题 数列求值(超范围)(好好审题啊喂),第1张

蓝桥杯真题 数列求值(超范围)(好好审题啊喂)

本题代码实现比较简单,而且是填空题

typedef long long ll;
ll f(int n)
{
	int i,a=1,b=1,c=1,result;
	for(i=4;i<=n;i++)
	{
		result=a+b+c;
		a=b;
		b=c;
		c=result;	
	}
	if(n<=3)
	return 1;
	else
	return result;
}

#include
int main()
{
	int n;
	scanf("%d",&n);
	printf("%d",f(n));
	return 0;
}

这是我直接看到这道题没多想就直接写的代码~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

OJ直接给了个答案错误~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

实际上本题陷阱就在超范围~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

避免这种陷阱的方法即每次求解的时候都取模即可!!!!!!!!!!!!!!!!!!!!!

所以

typedef long long ll;
ll f(int n)
{
	int i,a=1,b=1,c=1,result;
	for(i=4;i<=n;i++)
	{
		result=a+b+c;
		a=b;
		b=c;
		c=result%10000;	//取模!!!!!!!!!!!
	}
	if(n<=3)
	return 1;
	else
	return result;
}

#include
int main()
{
	int n;
	scanf("%d",&n);
	printf("%d",f(n));
	return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5711539.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存