前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >某种序列 -----------------------------------------------Five—菜鸟级

某种序列 -----------------------------------------------Five—菜鸟级

作者头像
Fivecc
发布2022-11-21 15:08:05
1240
发布2022-11-21 15:08:05
举报
文章被收录于专栏:前端ACE

某种序列

时间限制: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, A1, A2 <= 100000000)

数据以EOF结束

输出

对于输入的每一行输出A99的值

样例输入

1 1 1

样例输出

69087442470169316923566147 

思路:数组存储,递推 

代码语言:javascript
复制
#include<stdio.h>
#include<string.h>
#define M 100000
int sum[5][11];
void f(int x,int a)
{ int j=0;while(a)sum[x][j++]=a%M,a=a/M;}
int main()
{
	int a,b,c,i,j,n,k,adw;
	while(scanf("%d%d%d",&a,&b,&c)==3){
		memset(sum,0,sizeof(sum));
		if(a==0&&b==0&&c==0){printf("%d\n",0);continue;}
	    f(0,a);f(1,b);f(2,c);int c1=0,c2=1,c3=2,c4=3;
		for(i=3;i<=99;++i){
			adw=0;//进位 
			for(j=0;j<=10;++j){
				sum[c4][j]=sum[c1][j]+sum[c2][j]+sum[c3][j]+adw;
				adw=sum[c4][j]/M;
				sum[c4][j]%=M;
			}
			c1=(c1+1)%4;c2=(c2+1)%4;c3=(c3+1)%4;c4=(c4+1)%4;//更新滚动 
		}
		for(i=10;i>=0;--i)if(sum[c3][i]!=0)break;
	    	for(j=i;j>=0;--j)
			if(j==i)printf("%d",sum[c3][j]);
			else printf("%05d",sum[c3][j]);
		    printf("\n");}
	return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 某种序列
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档