c语言学习日记(一)

习题6-4 使用函数输出指定范围内的Fibonacci数

  • 题目要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。
  • 其中函数fib须返回第n项Fibonacci数;函数PrintFN要在一行中输出给定范围[m, n]内的所有Fibonacci数,相邻数字间有一个空格,行末不得有多余空格。如果给定区间内没有Fibonacci数,则输出一行“No Fibonacci number”。
  • 代码如下
#include<stdio.h>
int 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;
}
int fib(int n)
{
 int num= 0;
 int i = 2;
 if(n<=2)
 return 1;
 else
 {
  int a[10000];
  for(int k = 0;k<n;k++)
  {
   a[k] = 0;
  }  
  for(i = 2;i<n;i++)
  {     
   a[0]=a[1]=1;
   a[i] = a[i-1] +a[i-2];    
  }
  num = a[n-1];
  return num;
 }
}
void PrintFN(int m,int n)
{
 int i = 1;
 for(;fib(i)<m;i++);//求大于m的一个fib数
 if(fib(i)>n)
 printf("No Fibonacci number");
 else
 {
  while(fib(i)<=n)
  {
   printf("%d",fib(i));
   if(fib(i+1)<=n)
   printf(" ");
   i++;
  }
 }
}

初学代码,如有建议,不吝赐教

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值