输出指定数量number的斐波那契数列

斐波那契数列:每一项都等于前两项之和且前两项和为1;

#include 
// 1.用户输入一个整数,若用户输入的不是整数,则提示用户输入一个整数;若整数大于等于1,则成立,退出循环;
//若输入的小于,则提醒用户重新输入,接着循环.知道用户输入正确为止;
//1.用户输入一个整数;
int get_integer()
{
  int number;
  while(1)
  {
    printf("请用户输入一个整数:");
    if(scanf("%d" , &number) == 1)
    {
      if(number >= 1)
      {
        printf("输入正确!\n");
        return number;
      }
      else
      {
        printf("请用户输入一个大于等于1的整数\n");
      }
    }
    else
    {
      printf("请用户输入一个整数\n");
    }
    while(getchar() != '\n');//清空缓冲区;
  }
}


//2.输出斐波那契数列;
//print_fibonacci 函数:接受一个整数 n,表示需要输出的斐波那契数列的项数。使用循环计算并输出斐波那契数列的前 n 项。
//前两项固定为1,从第三项开始,每一项等于前两项之和。 
void print_fibonacci(int n)
{
  int a = 1, b = 1, sum;
  printf("斐波那契数列的前 %d 项为:\n", n);
  for(int i = 1; i <= n; i++)//这个数列需要用循环打印出来;
  {
    if(i == 1 || i ==2)
    {
      printf("%d ",1);//前两项为1;
    }
    else
    {
      sum = a + b;
      printf("%d ",sum);
      a = b; //更新前两项的值;//可以自己画图理解;
      b = sum;              
    }
  }
  printf("\n");
}


int main()
{
  //用于获取输入的整数;
  int number = get_integer();
  // 输出斐波那契数列;
  print_fibonacci(number);

  return 0;
}

你可能感兴趣的:(c语言)