【问题描述】使用函数输出指定范围内的Fibonacci数:输入两个正整数m和n(1≤m,n≤50)输出第m~n项之间(包括n和m)所有的Fibonacci数。Fibonacci序列:1 1 2 3 5 8 13 21... ... 要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。例如,fib(7)的返回值是13。
【输入形式】
1 3
【输出形式】
The fibonacci numbers are:
fib(1)=1
fib(2)=1
fib(3)=2
【样例输入】1 3
【样例输出】
The fibonacci numbers are:
fib(1)=1
fib(2)=1
fib(3)=2
#include <stdio.h>
// 函数声明
long long fib(int n);
int main() {
int m, n;
int i;
// 获取输入
scanf("%d%d", &m, &n);
// 输出 Fibonacci 数
printf("The fibonacci numbers are:\n");
for ( i = m; i <= n; ++i) {
printf("fib(%d)=%lld\n", i, fib(i));
}
return 0;
}
// 定义 fib 函数
long long fib(int n) {
int i;
if (n <= 0) {
return 0;
} else if (n == 1 || n == 2) {
return 1;
} else {
long long a = 1, b = 1, temp;
for ( i = 3; i <= n; ++i) {
temp = a + b;
a = b;
b = temp;
}
return b;
}
}