Aplikasi rekursi dalam C++: panduan praktikal secara ringkas

WBOY
Lepaskan: 2024-05-01 11:24:01
asal
905 orang telah melayarinya

Rekursi ialah teknik pengaturcaraan di mana fungsi memanggil dirinya sendiri, sesuai untuk membahagi dan menakluk masalah. Dalam C++, fungsi rekursif ditakrifkan sebagai: returnType functionName(parameter), yang memerlukan situasi garis dasar yang jelas (syarat penamatan) dan panggilan rekursif (memanggil dirinya sendiri selepas mengemas kini parameter). Pengiraan faktor ialah kes klasik rekursi Kodnya adalah seperti berikut: `cpplong factorial(int n) { if (n == 0) {return 1;} else {return n * factorial(n-1);}}

递归在 C++ 中的应用:深入浅出实操指导

Aplikasi Rekursi dalam C++

Pengenalan

Rekursi ialah teknik pengaturcaraan yang berkuasa yang membolehkan fungsi memanggil diri mereka sendiri. Ia sering digunakan untuk menyelesaikan masalah yang mempunyai sifat divide-and-conquer, iaitu masalah boleh dipecahkan kepada sub-masalah yang lebih kecil yang boleh diselesaikan secara rekursif.

Syntax

Dalam C++, fungsi rekursif ditakrifkan menggunakan sintaks berikut:

returnType functionName(parameters) {
  // 基线情况:当递归终止时要满足的条件
  if (base_case) {
    return result;
  }

  // 递归调用:函数调用自己,传入更新后的参数
  return functionName(updated_parameters);
}
Salin selepas log masuk

Kes praktikal: faktorial

Mencari faktorial bagi integer bukan negatif ialah contoh klasik integer bukan negatif Faktorial ditakrifkan sebagai:

factorial(n) = 1,                   if n = 0
              = n * factorial(n-1), if n > 0
Salin selepas log masuk

Kod berikut melaksanakan fungsi rekursif untuk mengira faktorial:

#include <iostream>

long factorial(int n) {
  if (n == 0) {
    return 1;
  } else {
    return n * factorial(n-1);
  }
}

int main() {
  int n;
  std::cout << "Enter a non-negative integer: ";
  std::cin >> n;

  std::cout << "The factorial of " << n << " is: " << factorial(n) << std::endl;

  return 0;
}
Salin selepas log masuk

Aplikasi lain

Rekursi juga boleh digunakan untuk menyelesaikan pelbagai masalah, termasuk:

    s
  • Traversss trees
  • Isih Pantas dan Gabung
  • Pengaturcaraan dinamik
  • Kaedah penjejakan ke belakang

Petua

  • Pastikan fungsi rekursif mempunyai kes garis dasar yang jelas untuk mengelakkan rekursi tak terhingga.
  • Gunakan rekursi dengan berhati-hati kerana ia boleh menyebabkan limpahan timbunan.
  • Untuk masalah rekursif dengan sejumlah besar submasalah, anda boleh menggunakan memo atau pengoptimuman rekursi ekor untuk meningkatkan kecekapan.

Atas ialah kandungan terperinci Aplikasi rekursi dalam C++: panduan praktikal secara ringkas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan