习题6-4 使用函数输出指定范围内的Fibonacci数 (20 分)
本題要求實(shí)現(xiàn)一個(gè)計(jì)算Fibonacci數(shù)的簡(jiǎn)單函數(shù),并利用其實(shí)現(xiàn)另一個(gè)函數(shù),輸出兩正整數(shù)m和n(0<m≤n≤10000)之間的所有Fibonacci數(shù)。所謂Fibonacci數(shù)列就是滿足任一項(xiàng)數(shù)字是前兩項(xiàng)的和(最開(kāi)始兩項(xiàng)均定義為1)的數(shù)列。
函數(shù)接口定義:
int fib( int n ); void PrintFN( int m, int n );其中函數(shù)fib須返回第n項(xiàng)Fibonacci數(shù);函數(shù)PrintFN要在一行中輸出給定范圍[m, n]內(nèi)的所有Fibonacci數(shù),相鄰數(shù)字間有一個(gè)空格,行末不得有多余空格。如果給定區(qū)間內(nèi)沒(méi)有Fibonacci數(shù),則輸出一行“No Fibonacci number”。
我的代碼:
int fib( int n ) {int f;if (n == 1||n == 2)f = 1;else f = fib(n-1)+fib(n-2);return f; } void PrintFN( int m, int n ) {int i = 1,flag = 0;while(fib(i)<=n){if(fib(i)>=m){//flag = 1;if(flag == 0)printf("%d",fib(i));else printf(" %d",fib(i));flag = 1;}i++;}if(flag == 0)printf("No Fibonacci number\n"); }1.指示變量flag有兩個(gè)作用,一是判斷是否有Fibonacci數(shù),二是判斷該Fibonacci數(shù)是不是第一次出現(xiàn),如果是,則直接輸出fib(i),否則前面增加一空格再輸出fib(i)。我用這種方法解決“行末不得有多余空”的要求,猜想方法多多,只是我這只小菜雞想不到。
總結(jié)
以上是生活随笔為你收集整理的习题6-4 使用函数输出指定范围内的Fibonacci数 (20 分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: steam方舟多少钱啊?
- 下一篇: 习题6-5 使用函数验证哥德巴赫猜想 (