某种序列
时间限制:
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
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
int aa[5];
while(scanf("%d %d %d",&aa[1],&aa[2],&aa[3])!=EOF)
{
int l,s,p,i,j;
int a[110][1010]={0};
for(i=1;i<=3;i++)
{
j=1;
while(aa[i])
{
a[i][j++]=aa[i];
aa[i]/=10;
}
}
s=0,p=0;
for(i=4;i<=100;i++)
for(j=1;j<=1000;j++)
{
s=a[i-1][j]+a[i-2][j]+a[i-3][j]+p;
a[i][j]=s;
p=s/10;
}
for(i=1010;i>=1;i--)
if(a[100][i]!=0)
break;
if(i==0)
printf("0");
else
for(i;i>=1;i--)
printf("%d",a[100][i]);
printf("\n");
}
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-1518.html