c语言使用函数输出指定范围内的fibonacci数
时间: 2023-04-27 07:02:52 浏览: 122
可以使用递归函数来输出指定范围内的Fibonacci数列,具体代码如下:
```c
#include <stdio.h>
int fibonacci(int n)
{
if (n == 0 || n == 1)
return n;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
void print_fibonacci(int start, int end)
{
int i, fib;
for (i = start; i <= end; i++)
{
fib = fibonacci(i);
printf("%d ", fib);
}
}
int main()
{
int start = 0, end = 10;
print_fibonacci(start, end);
return 0;
}
```
在上面的代码中,`fibonacci`函数用来计算第n个Fibonacci数,`print_fibonacci`函数用来输出指定范围内的Fibonacci数列,`main`函数中调用`print_fibonacci`函数来输出从0到10的Fibonacci数列。
相关问题
c语言中使用函数输出指定范围内的fibonacci数
以下是C语言中使用函数输出指定范围内的Fibonacci数的代码:
```c
#include <stdio.h>
// 计算第n项Fibonacci数
int fib(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fib(n - 1) + fib(n - 2);
}
}
// 输出给定范围[m, n]内的所有Fibonacci数
void PrintFN(int m, int n) {
int i, flag = 0;
for (i = m; i <= n; i++) {
int f = fib(i);
if (f > n) {
break;
}
if (f >= m && f <= n) {
if (flag == 0) {
printf("%d", f);
flag = 1;
} else {
printf(" %d", f);
}
}
}
if (flag == 0) {
printf("No Fibonacci number");
}
}
int main() {
int m = 10, n = 100;
PrintFN(m, n);
return 0;
}
```
用C语言用函数输出指定范围内的Fibonacci数 题目描述 本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。 要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。例如fib(7)返回值是13。定义并调用函数print_fn(m,n)输出给定范围[m,n]内的所有Fibonacci数,相邻数字间有一个空格。如果给定区间内没有Fibonacci数,则输出一行“No Fibonacci number”。 输入 两正整数m和n(0<m≤n≤10000) 输出 见样例 样例查看模式 正常显示查看格式 输入样例20 100 输出样例21 34 55 89
以下是用C语言实现的代码:
```c
#include <stdio.h>
int fib(int n) {
if (n == 1 || n == 2) {
return 1;
}
return fib(n - 1) + fib(n - 2);
}
void print_fn(int m, int n) {
int i, f;
int flag = 0; // 标记是否有Fibonacci数
for (i = 1; ; i++) {
f = fib(i);
if (f > n) {
break;
}
if (f >= m && f <= n) {
printf("%d ", f);
flag = 1;
}
}
if (!flag) {
printf("No Fibonacci number");
}
}
int main() {
int m, n;
scanf("%d %d", &m, &n);
print_fn(m, n);
return 0;
}
```
代码思路:
- 首先定义一个函数 `fib(n)`,用来计算第 n 项的 Fibonacci 数;
- 然后定义一个函数 `print_fn(m, n)`,用来输出在范围 `[m, n]` 之间的 Fibonacci 数,如果没有 Fibonacci 数,则输出 `"No Fibonacci number"`;
- 在 `print_fn(m, n)` 中,使用循环遍历 Fibonacci 数列,判断每个 Fibonacci 数是否在给定范围内,如果是则输出,同时标记 `flag` 为 1;
- 循环结束后,如果 `flag` 为 0,说明没有 Fibonacci 数在给定范围内,输出 `"No Fibonacci number"`。
阅读全文