加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

NYOJ 题目114 某种序列(大数)

发布时间:2020-12-14 03:00:38 所属栏目:大数据 来源:网络整理
导读:某种序列 时间限制: 3000 ?ms ?|? 内存限制: 65535 ?KB 难度: 4 描述 数列A满足An = An-1 + An-2 + An-3,n = 3? 编写程序,给定A0,A1 和 A2,计算A99 输入 输入包含多行数据? 每行数据包含3个整数A0,A1,A2 (0 = A0,A2 = 100000000)? 数据以EOF结束 输出 对

某种序列

时间限制: 3000?ms ?|? 内存限制: 65535?KB
难度: 4
描述
数列A满足An = An-1 + An-2 + An-3,n >= 3?
编写程序,给定A0,A1 和 A2,计算A99
输入
输入包含多行数据?
每行数据包含3个整数A0,A1,A2 (0 <= A0,A2 <= 100000000)?
数据以EOF结束
输出
对于输入的每一行输出A99的值
样例输入
1 1 1
样例输出
69087442470169316923566147
来源
水题比赛中较不水的
上传者
hzyqazasdf
ac代码
#include<stdio.h>
#include<string.h>
char a[100][100010];
void add(char *a,char *b,char *c)
{
	int i,j,max,len1,len2,k=0;
	int ans[100010];
	len1=strlen(a);
	len2=strlen(b);
	i=len1-1;
	j=len2-1;
	memset(ans,sizeof(ans));
	while(i>=0||j>=0)
	{
		if(i>=0&&j<0)
		{
			ans[k]+=a[i]-'0';
		}
		else
			if(i<0&&j>=0)
				ans[k]+=b[j]-'0';
			else
				ans[k]+=b[j]-'0'+a[i]-'0';
			k++;
			i--;
			j--;
			ans[k]=ans[k-1]/10;
			ans[k-1]%=10;
			if(ans[k])
				max=k;
			else
				max=k-1;
	}
	for(i=max;i>=0;i--)
	{
		c[max-i]=ans[i]+'0';
	}
	c[max+1]='';
}
int main()
{
	int i;
	while(scanf("%s%s%s",a[0],a[1],a[2])!=EOF)
	{
		for(i=3;i<=99;i++)
		{
			add(a[i-3],a[i-2],a[i]);
			add(a[i],a[i-1],a[i]);
		}
		printf("%sn",a[99]);
	}
	
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读