使用函数输出指定范围内的Fibonacci数
发布日期:2021-06-29 11:17:50
浏览次数:2
分类:技术文章
本文共 1600 字,大约阅读时间需要 5 分钟。
本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。
函数接口定义:
int fib( int n );void PrintFN( int m, int n );
其中函数fib须返回第n项Fibonacci数;函数PrintFN要在一行中输出给定范围[m, n]内的所有Fibonacci数,相邻数字间有一个空格,行末不得有多余空格。如果给定区间内没有Fibonacci数,则输出一行“No Fibonacci number”。
裁判测试程序样例:
#includeint fib( int n );void PrintFN( int m, int n );int main(){ int m, n, t; scanf("%d %d %d", &m, &n, &t); printf("fib(%d) = %d\n", t, fib(t)); PrintFN(m, n); return 0;}/* 你的代码将被嵌在这里 */
输入样例1:
20 100 7
输出样例1:
fib(7) = 1321 34 55 89
输入样例2:
2000 2500 8
输出样例2:
fib(8) = 21No Fibonacci number
思路:斐波拉契数列可以用定义也可以用递归,递归法数目很大时会稍慢一些。
//定义法int fib(int n) { int i, t; // int ans = 1; int count = 1; if (n == 1 || n == 2) { ans = 1; } else { for (i = 1; count <= n - 2; count++) { t = i;//t为fib(n-2) i = ans;//ans自身为fib(n-1) ans += t; } } return ans;}
//递归法int fib(int n) { if (n == 1 || n == 2) return 1; else return fib(n - 1) + fib(n - 2);}
下面是PrintFN函数
void PrintFN(int m, int n) { int i = 0; int count = 0;//计数(第一次输出要特殊处理)同时作为判别标记 do { i++; } while (fib(i) < m);//让fib(i)直接从>=m的第一个数开始 for (;; i++) { if (fib(i) >= m && fib(i) <= n) { count++; if (count == 1) { printf("%d", fib(i)); continue; } printf(" %d", fib(i)); } else { break; } } if (!count) { printf("No Fibonacci number"); }}
转载地址:https://blog.csdn.net/zxc0074869/article/details/114552797 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月26日 04时14分22秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
速看 | 电子元器件如何确定好坏?
2019-04-29
485通信自动收发电路,历史上最详细的解释
2019-04-29
【视觉盛宴三】不好意思,这些线材接口的横截面真的没见过
2019-04-29
一位头发发白的神人教你怎么写程序,运维,买电脑,写文章,平面设计!
2019-04-29
【第二期】那些设计漂亮、有创意的电路板!
2019-04-29
【第三期】那些设计漂亮、有创意的电路板!
2019-04-29
继续推荐公众号~
2019-04-29
「第二篇」全国一等奖,经验帖。
2019-04-29
「第三篇」全国电子设计竞赛,这些你必须知道的比赛细节,文末附上近十年电赛题目下载...
2019-04-29
5G小科普(漫画版,So easy!)
2019-04-29
无人再提华强北
2019-04-29
千万不要小瞧那些不好好写代码的程序员
2019-04-29
80后,天才程序员, Facebook 第一任 CTO,看看开挂的人生到底有多变态?
2019-04-29
「第四篇」电赛控制题可以准备一些什么?
2019-04-29
「第五篇」全国电子设计竞赛-电源题设计方案总结
2019-04-29
「第六篇」对于电赛,我们应该看重什么?
2019-04-29
树莓派翻车了
2019-04-29
垃圾分类背后的数据和真相
2019-04-29
PID算法搞不懂?看这篇文章就够了。
2019-04-29
这位电子工程师,你不能错过。
2019-04-29