求递推公式(大数序列)
来源:互联网 发布:淘宝网家装日记 编辑:程序博客网 时间:2024/05/20 17:10
描述
数列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
样例输出
数列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<string>#include<cstring>#include<cstdio>#include<algorithm>#define CLR(arr, val) memset(arr, val, sizeof(arr))using namespace std;int a[80], b[80], c[80], res[80];int main(){//freopen("Input.txt", "r", stdin);string x, y, z;int i, j, up;while(cin>>x>>y>>z){CLR(a,0);CLR(b, 0);CLR(c, 0);CLR(res, 0);for(i = 0, j = x.length() - 1; j >= 0; ++i, --j) //倒序存数,方便进位a[i] = x[j] - '0';for(i = 0, j = y.length() - 1; j >= 0; ++i, --j)b[i] = y[j] - '0';for(i = 0, j = z.length() - 1; j >= 0; ++i, --j)c[i] = z[j] - '0';for(i = 0; i <= 96; ++i){up = 0;for(j = 0; j < 80; ++j){res[j] = a[j] + b[j] + c[j] + up;up = res[j] / 10;res[j] %= 10;}for(j = 0; j < 80; ++j) //向后更新递推公式{a[j] = b[j];b[j] = c[j];c[j] = res[j];}}for(i = 79; i >= 0; --i) //去掉前导的0if(res[i]) break;if(i == -1) {printf("0\n"); continue;}for(j = i; j >= 0; --j)printf("%d", res[j]);printf("\n");}return 0;}
- 求递推公式(大数序列)
- 序列(大数)
- ASC(22)H(大数+推公式)
- nyoj114某种序列(大数)
- POJ 3982 序列(大数)
- 大数求平均值公式
- hdu4927 Series 1(组合+公式 Java大数高精度运算)
- HDU 5047 Sawtooth(大数优化+递推公式)
- HDOJ 1018 Big Number(大数位数公式)
- hdu1018——Big Number(大数阶乘,斯特林公式)
- pku--3982 序列 (三个大数相加)
- NYOJ 题目114 某种序列(大数)
- NYOJ 114 某种序列(大数加)
- NYOJ 114 序列(大数加操作)
- 斯特林公式求大数位数
- 序列第二大数
- 某种序列--大数加法
- poj3982 序列(java大数)
- Android提高第十二篇之蓝牙传感应用
- ORACLE DBLINK操作小节
- vs2010UI测试
- Java线程:线程的同步与锁
- VMware 网络共享和通讯问题
- 求递推公式(大数序列)
- Dreamweaver保存文件时提醒“发生共享违例”
- Android提高第十三篇之探秘蓝牙隐藏API
- GridView中CheckBox选择数目的js验证
- 正则表达式语法
- Java线程:线程的交互
- Java线程:线程的调度-休眠
- windows 关闭 激活验证
- Volatile 类型修饰 的理解