nyoj--114--某种序列(滚动数组)
2024-10-01 10:46:37
某种序列
时间限制: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<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define N 110
int a[N];
int b[N];
int c[N];
int sum[N];
void init(int x,int a[])
{
int i=0;
while(x)
{
a[i++]=x%10;
x/=10;
}
}
int main()
{
int aa,bb,cc;
while(scanf("%d%d%d",&aa,&bb,&cc)!=EOF)
{
int i,j,t;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
init(aa,a);
init(bb,b);
init(cc,c);
for(i=3;i<=99;i++)
{
memset(sum,0,sizeof(sum));
for(j=0;j<N;j++)
{
sum[j]+=(a[j]+b[j]+c[j]);
if(sum[j]>9)
{
t=sum[j];
sum[j]=t%10;
sum[j+1]=t/10;
}
}
for(j=0;j<N;j++)
{
a[j]=b[j];
b[j]=c[j];
c[j]=sum[j];
}
}
for(j=N-1;j>0&&sum[j]==0;j--);
for(;j>=0;j--)
printf("%d",sum[j]);
printf("\n");
}
return 0;
}
最新文章
- Ubuntu下配置apache开启https
- gradle各版本下载地址
- 单例模式读取properties配置文件中的信息
- mysql insert一条记录后怎样返回创建记录的主键id,last_insert_id(),selectkey
- sql server 查看数据库编码格式
- XPath语法 在C#中使用XPath示例 【转http://www.cnblogs.com/yukaizhao/archive/2011/07/25/xpath.html】非常详细的文章
- HDU 5794 A Simple Chess (Lucas + dp)
- C# 反射 设置字段值无效的解决办法
- 第27条:使用“class-continuation分类”隐藏实现细节
- bzoj2809
- mac 下 安装 mongodb 数据库
- InnoDB 索引原理
- Effective Java 第三版——3. 使用私有构造方法或枚类实现Singleton属性
- [HAOI2015]树上操作-树链剖分
- Mysql半同步复制模式说明及配置示例 - 运维小结
- 2.1 View与ViewGroup的概念
- MySQL服务器线程数的查看方法详解
- 【转载】RabbitMQ基础知识
- Spark Streaming笔记
- Simple2D-24 Sprite 渲染树