Pelaksanaan rekursif fungsi C++: Apakah kegunaan biasa rekursi?

WBOY
Lepaskan: 2024-04-22 16:36:01
asal
1101 orang telah melayarinya

Rekursi ialah teknik di mana fungsi memanggil dirinya sendiri, dan digunakan secara meluas dalam senario di mana masalah diselesaikan langkah demi langkah. Dalam C++, rekursi mempunyai kegunaan biasa berikut: Menyelesaikan nombor Fibonacci Mengira faktorial Mengira pilih atur dan gabungan Melintasi struktur pokok Menyelesaikan masalah penyelesaian maze

C++ 函数的递归实现:递归的常见用法有哪些?

Pelaksanaan rekursif fungsi C++: Teroka kegunaan biasa rekursi dalam pengaturcaraan

teknik sains yang membolehkan sesuatu fungsi memanggil dirinya. Ia digunakan secara meluas dalam senario yang memerlukan penyelesaian masalah langkah demi langkah. Artikel ini akan meneroka kegunaan biasa rekursi dalam C++ dan menggambarkannya melalui kes praktikal.

Penggunaan asas: Jujukan Fibonacci

Penggunaan rekursif yang paling mudah ialah mencari Jujukan Fibonacci. Setiap nombor dalam jujukan ini ialah jumlah dua nombor sebelumnya Pelaksanaan khusus adalah seperti berikut:

int fibonacci(int n) {
  if (n <= 1) {
    return 1;
  } else {
    return fibonacci(n - 1) + fibonacci(n - 2);
  }
}
Salin selepas log masuk

Pengiraan Kilang

Mencari faktorial nombor juga merupakan aplikasi rekursif klasik. Faktorial ialah hasil darab nombor itu dengan semua integer positif kurang daripadanya.

int factorial(int n) {
  if (n == 0) {
    return 1;
  } else {
    return n * factorial(n - 1);
  }
}
Salin selepas log masuk

Permutasi dan gabungan

Rekursi juga boleh digunakan untuk mengira pilih atur dan gabungan. Susunan ialah cara menyusun objek dalam susunan tertentu, manakala gabungan ialah cara menyusun objek tanpa mengambil kira susunan.

Permutasi:

int permutations(int n, int r) {
  if (r == 0) {
    return 1;
  } else {
    return n * permutations(n - 1, r - 1);
  }
}
Salin selepas log masuk
Kombinasi:

int combinations(int n, int r) {
  if (r == 0 || n == r) {
    return 1;
  } else {
    return combinations(n - 1, r - 1) + combinations(n - 1, r);
  }
}
Salin selepas log masuk

Traversal struktur pokok

Rekursi digunakan secara meluas untuk melintasi struktur pokok, seperti pokok dan graf.

Perjalanan pra-pesanan pokok binari:

void preorderTraversal(TreeNode* root) {
  if (root != nullptr) {
    std::cout << root->val;
    preorderTraversal(root->left);
    preorderTraversal(root->right);
  }
}
Salin selepas log masuk

Kes praktikal: Penyelesaian labirin

Menggunakan rekursi boleh menyelesaikan masalah penyelesaian labirin. Algoritma rekursif berfungsi dengan mencuba semua laluan yang mungkin sehingga ia menemui laluan ke pintu keluar. 🎜rreeee

Atas ialah kandungan terperinci Pelaksanaan rekursif fungsi C++: Apakah kegunaan biasa rekursi?. 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