E-斐波那契数
2015-12-04 20:38
197 查看
1
#include<stdio.h> long long int abc[100]= {0,1,2,3,5}; int sum=0,pos=4;//No.1 long long int fun(); long long int fun(int n) { sum++; long long int x=0,y=0; int k; if (n<=pos) return abc ; else { abc =fun(n-1)+fun(n-2); return abc ; } } int main() { int a,i,j; int n; scanf("%d",&a); while(a--) { scanf("%d",&n); printf("times=%d;fun(n)=%lld\n",sum,fun(n)); } }
2
#include<stdio.h> int sum=0; long long int fun(); long long int fun(int n){ // F(2n+1)=F(n+1)*F(n+1)+F(n)*F(n) // F(2n)=F(n+1)*F(n)+F(n)*F(n-1)=F(n+1)*F(n)+F(n)*(F(n+1)-F(n)) sum++; long long int x=0,y=0; int k; if(n==1||n==2) a275 return 1; else if(n==3) return 2; else if(n==4) return 3; else { k=n/2;y=fun(k); x=fun(k+1); printf("k==%d,x==%lld,y===%lld\n",k,x,y); if(n%2!=0) return x*x + y*y; else return (2*x-y)*y; } } int main() { int a; int n; scanf("%d",&a); while(a--){ scanf("%d",&n); printf("times=%d;fun(n)=%lld\n",sum,fun(n)); } }
3
#include<stdio.h> int main() { int i,j,a,n; long long int f1=1,f2=1,t; while(a--) { f1=1; f2=1; scanf("%d",&n); for(i=3; i<=n; i++) { t=f2+f1; f1=f2; f2=t; } printf("fun(n)=%lld\n",f2); } }
相关文章推荐
- .bash_profile和.bashrc的区别(如何设置生效)
- acm中Stack和Queue使用demo
- LeetCode 191 Number of 1 Bits
- Git的基本使用
- iOS 网络与多线程--5.异步Post方式的网络请求(非阻塞)
- project euler 8
- project euler 7
- 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
- iOS 页面间几种传值方式(属性,代理,block,单例,通知)
- Python 模拟登陆数据系统
- 最小费用最大流模板
- Linux 文件系统剖析
- Android关于连接需要Portal认证的WIFI
- uva 10004 Bicoloring(dfs二分染色,和hdu 4751代码差不多)
- 【以太网数据结构】UDP协议
- 苏黄永郦的第四周读书报告
- 游戏注册系统
- StringBuffer versus String
- project euler 6
- ZeroClipboard.js - 兼容所有浏览器的文字复制功能