C++에서 피보나치 수 생성

Jinku Hu 2023년10월12일
  1. C++ 반복 방법을 사용하여 피보나치 시퀀스의 첫 번째n항목 인쇄
  2. C++ 반복 방법을 사용하여 피보나치 시퀀스의n-Th 항목 인쇄
C++에서 피보나치 수 생성

이 기사에서는 C++에서 피보나치 수를 생성하는 방법에 대한 여러 방법을 보여줍니다.

C++ 반복 방법을 사용하여 피보나치 시퀀스의 첫 번째n항목 인쇄

피보나치 수는 수학에서 일반적으로 숫자 시퀀스로 알려져 있습니다. 여기서 각 항목은01에서 시작하는 두 선행 항목의 합입니다. 이 예제 코드에서는 사용자의 입력을 정수n으로 취하고 피보나치 수열에서 첫 번째n숫자를 생성합니다. 해결책은 단순 반복적입니다. 여기서 시작 값을 초기화하고n-3을 반복하여 이전 값을 합산합니다. 반복 할 때마다 합계가cout스트림에 인쇄되고 저장된 값이 하나의 숫자 창으로 이동합니다. if조건이 구현되어 입력 정수-0을 확인하고 해당 값을 인쇄합니다. 첫 번째cout문은for루프 조건이 false로 평가되고 진행되지 않기 때문에n2와 같을 때 케이스를 처리합니다.

#include <iostream>

using std::cin;
using std::cout;
using std::endl;
using std::string;

void generateFibonacci(unsigned long long n) {
  if (n == 1) {
    cout << 0 << endl;
    return;
  }

  unsigned long long a = 0;
  unsigned long long b = 1;
  unsigned long long c;

  cout << a << " " << b;

  for (unsigned long long i = 3; i <= n; i++) {
    c = a + b;
    cout << " " << c;
    a = b;
    b = c;
  }
}

int main() {
  unsigned long long num;

  cout << "Enter the number of items to generate Fibonacci series: ";
  cin >> num;

  generateFibonacci(num);

  return EXIT_SUCCESS;
}

출력:

Enter the number of items to generate Fibonacci series: 10
0 1 1 2 3 5 8 13 21 34

C++ 반복 방법을 사용하여 피보나치 시퀀스의n-Th 항목 인쇄

또는 피보나치 수열에서n번째 숫자를 반환하는 함수를 구현할 수 있습니다. 내장 C++ 유형으로 저장할 수있는 가장 큰 숫자를 출력 할 수 있기를 원하기 때문에 사용자 입력을unsigned long long에 저장합니다. 이 함수는if-else문으로 시작하여 처음 세 케이스를 확인하고 하드 코딩 된 값을 반환합니다. 반면에n3보다 크면 루프 블록으로 진행하여 시퀀스에서n번째 숫자를 얻을 때까지 반복합니다.

#include <iostream>

using std::cin;
using std::cout;
using std::endl;
using std::string;

unsigned long long generateFibonacci(unsigned long long n) {
  if (n == 1) {
    return 0;
  } else if (n == 2 || n == 3) {
    return 1;
  }

  unsigned long long a = 1;
  unsigned long long b = 1;
  unsigned long long c;

  for (unsigned long long i = 3; i < n; i++) {
    c = a + b;
    a = b;
    b = c;
  }

  return c;
}

int main() {
  unsigned long long num;

  cout << "Enter the n-th number in Fibonacci series: ";
  cin >> num;

  cout << generateFibonacci(num);
  cout << endl;

  return EXIT_SUCCESS;
}

출력:

Enter the n-th number in Fibonacci series: 10
34
작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

관련 문장 - C++ Math