Fibonacci数列
2009-08-13 12:47
218 查看
Fibonacci数列
http://acm.fzu.edu.cn/problem.php?pid=1060
Time Limit:1s | Memory limit:32M |
Accepted Submit:746 | Total Submit:2937 |
1202年,意大利数学家斐波那契出版了他的《算盘全书》,在书中第一次提到了著名的Fibonacci数列,定义如下:![]() 现在你的任务是求出Fibonacci数列的第n项。 输入输出格式 输入数据由多组数据组成。每组数据一行,仅一个整数,表示n的值。 对于每组数据,输出仅一行,即Fibonacci数列的第n项。 我们保证输出的结果不会超过1000位数。 样例输入 20 样例输出 6765 Original: FZUPC 2005 |
#include <stdio.h> void add(char inx[1000],char iny[1000]) { int temp=0; int i; for(i=0;i<1000;i++) { if(inx[i]+iny[i]+temp-'0'<58) { inx[i]=inx[i]+iny[i]+temp-'0'; temp=0; } else { inx[i]=inx[i]+iny[i]+temp-10-'0'; temp=1; } } } void cprint(char in[1000]) { int i; int p=999; for(i=999;i>=0;i--) if(in[i]!='0') { p=i; break; } while(p>=0){ printf("%c",in[p]); p--; } printf("/n"); } void main() { int i,j,n; char inx[1000],iny[1000]; while(scanf("%d",&n)!=EOF) { for(i=1;i<1000;i++) { inx[i]='0'; iny[i]='0'; } inx[0]=iny[0]='1'; if(n==3) printf("2/n"); else if(n%2==0) { for(j=3;j<=n;j+=2) { add(inx,iny); add(iny,inx); } cprint(iny); } else { for(j=3;j<=n;j+=2) { add(inx,iny); add(iny,inx); } cprint(inx); } } }
相关文章推荐
- [c++]动态分配空间(Fibonacci数列)
- 求 Fibonacci数列前n项之和....
- 蓝桥杯-入门训练-Fibonacci数列
- Fibonacci数列求任意项
- 【C语言】fibonacci数列 的递归和非递归 +浅谈递归优劣
- fibonacci数列矩阵快速幂
- 递归实现求Fibonacci数列的第n项
- 蓝桥杯练习:入门训练 Fibonacci数列
- Fibonacci数列-递归算法
- hdu 5451 Best Solver 快速矩阵乘法 Fibonacci数列的循环节
- <仅是自己做笔记。。。系列-11>输入n,用最快的方法求Fibonacci数列的第n项。
- 蓝桥杯 Fibonacci数列(数列+取模)
- Fibonacci数列的计算和转换
- Python算法题----玩转fibonacci数列
- Fibonacci数列--矩阵乘法优化
- 程序员面试题精选100题(16)-O(logn)求Fibonacci数列[算法]
- Fibonacci数列
- 第二周上机实践项目 项目4-用循环求Fibonacci数列
- 蓝桥杯入门训练 Fibonacci数列
- 阶乘函数和Fibonacci数列