给定斐波那契数列的项数求对应的数值的普通方法和优化处理
1 /** 2 给定斐波那契数列的项数求对应的数值 3 参考:剑指Offer 4 */ 5 #include <stdio.h> 6 7 int fib(int n); 8 long long fibonacci(unsigned int n); 9 int main(int argc, const char * argv[]) { 10 11 int n; 12 13 while (1) { 14 15 printf("请输入你想知道到的斐波那契数列的项数:\t"); 16 scanf("%d",&n); 17 int result = fib(n); 18 long long googResult = fibonacci(n); 19 printf("与之对应的斐波那契数列数列的值为:\t%d\t%lld\n\n",result,googResult); 20 21 22 } 23 return 0; 24 } 25 26 27 int fib(int n){ 28 29 if(n == 0){ 30 return 0; 31 }else if(n == 1){ 32 return 1; 33 }else { 34 return fib(n-1) + fib(n-2); 35 } 36 37 } 38 39 //斐波那契数列数列求解优化 40 41 long long fibonacci(unsigned int n){ 42 43 int result[] = {0,1}; 44 if (n < 2){ 45 return result[n]; 46 } 47 long long smallest = 0; 48 long long smaller = 1; 49 long long temp = 0; 50 51 for(int i=2; i<=n; i++){ 52 53 temp = smaller + smallest; 54 55 smallest = smaller; 56 smaller = temp; 57 58 } 59 return temp; 60 61 }
我会不定期分享 iOS 相关技术文章
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步