HDOJ 1715 大菲波数 (大数相加)
来源:互联网 发布:淘宝商品资质要填吗 编辑:程序博客网 时间:2024/05/17 06:40
大菲波数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 14814 Accepted Submission(s): 4968
Problem Description
Fibonacci数列,定义如下:
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
Input
输入第一行为一个整数N,接下来N行为整数Pi(1<=Pi<=1000)。
Output
输出为N行,每行为对应的f(Pi)。
Sample Input
512345
Sample Output
11235
大数相加,定义一个二维数组将Fibonacci数值倒着存放,打表后,倒着输出
已AC代码:
#include<cstdio>#include<cstring>#define MAX 300 // 要算到 1000 ,而 1000的Fibonacci的值位数小于 300 int f[MAX*4][MAX],la,lb; // f 中存的数为 倒着 的 void bignum(int t,int x,int y) // 大数f[t]=f[x]+f[y] {int i,j,len=MAX-1;while(f[x][len]==0)len--; //求 f[x],f[y]长度较大的为 f[x]的长度 for(i=0;i<=len;++i) //大数 相加的过程 {f[t][i]+=f[x][i]+f[y][i];if(f[t][i]>9){f[t][i]-=10;f[t][i+1]+=1;}}}void Fibonacci(){memset(f,0,sizeof(f));f[1][0]=f[2][0]=1;for(int i=3;i<=1000;++i)bignum(i,i-1,i-2); // 调用 求大数f[t]=f[x]+f[y] }int main(){Fibonacci(); //对 f 打表赋值 int T,n;scanf("%d",&T);while(T--){scanf("%d",&n);int i=MAX-1; // 由于数是倒着的,要找到最高位(即倒着找 第一个不为 0 的下标) while(f[n][i]==0)i--;for(;i>=0;--i) //倒着输出 printf("%d",f[n][i]);printf("\n");}return 0;}
0 0
- HDOJ 1715 大菲波数 (大数相加)
- HDOJ-1002大数相加
- hdu 1715 大菲波数(大数相加)
- 大数相加模板 hdoj 1002
- 大菲波数(大数多次相加)
- HDOJ 1002 A + B Problem II(大数相加)
- HDOJ 1047 Integer Inquiry(多个大数相加)
- HDOJ 1715 大菲波数(大数)
- hdoj 1715 大菲波数 【字符串相加】
- HDOJ 1047 Integer Inquiry(多次大数相加)
- hdoj 1002 a+b 大数相加 C++
- 大数相加(JAVA)
- 大数相加(二进制)
- hdu1002(大数相加)
- 大数相加(HDU1002)
- 大数相加(高精度)
- 大数相加(正整数)
- 【大数问题】 HDOJ 1715 大菲波数
- uva 1045 - The Great Wall Game(二分图匹配)
- 【SCOI2011】糖果 差分约束
- 【mysql学习系列】Mysql数据库导入官方示例数据库
- HDU 5452 Minimum Cut 树链剖分 + LCA
- 杭电acm--2047
- HDOJ 1715 大菲波数 (大数相加)
- Codeforces round #321 (DIV. 2)
- (php)form&文件上传
- 今目标的反思
- 面试---const与#define的区别
- 对语言的评估!!
- 由今目标想开来
- 黑马程序员—java技术blog—第三篇 TCP协议及基础应用
- 利用构造函数进行简化类初始化