Rekursi ialah teknik memanggil fungsi daripada fungsi yang sama itu sendiri. Mesti ada beberapa asas atau syarat penamatan untuk menamatkan panggilan rekursif. Prosedur rekursif sangat membantu untuk melaksanakan penyelesaian berulang yang kompleks dengan kod yang kurang dan mencari penyelesaian yang lebih mudah melalui sub-operasi.
Dalam artikel ini, kita akan membincangkan kaedah rekursif untuk melaksanakan hasil (pendaraban) antara dua nombor dalam C++. Mula-mula kita memahami prinsip asas, sintaks panggilan fungsi rekursif, algoritma dan kod sumber.
Dalam bahasa peringkat tinggi, terdapat pengendali pendaraban yang boleh melakukan pendaraban secara langsung. Walau bagaimanapun, kita tahu bahawa pendaraban sebenarnya adalah penambahan berulang. Jadi hasil A*B ialah bilangan penambahan berulang A dan B, atau boleh dikatakan bilangan penambahan berulang B dan A. Apabila terdapat pengulangan, kita boleh melakukan ini menggunakan rekursi. Mari kita lihat sintaks definisi fungsi rekursif terlebih dahulu.
<return type> function_name ( parameter list ) { if ( base condition ) { terminate recursive call } recursive function call: function_name ( updated parameter list ) }
Mari kita lihat algoritma yang melakukan pendaraban menggunakan rekursi.
#include <iostream> #include <sstream> using namespace std; int multiply( int A, int B) { if( A < B ) { return multiply( B, A ); } else if( B != 0 ) { return A + multiply( A, B - 1 ); } else { return 0; } } int main() { cout << "Multiplication of 5, 7 is: " << multiply( 5, 7 ) << endl; cout << "Multiplication of 8, 0 is: " << multiply( 8, 0 ) << endl; cout << "Multiplication of 25, 3 is: " << multiply( 25, 3 ) << endl; cout << "Multiplication of 9, 1 is: " << multiply( 9, 1 ) << endl; }
Multiplication of 5, 7 is: 35 Multiplication of 8, 0 is: 0 Multiplication of 25, 3 is: 75 Multiplication of 9, 1 is: 9
Lihat, dalam program ini, parameter fungsi A dan B adalah kedua-dua integer. Sekarang, selepas setiap langkah, ia mengurangkan parameter kedua B sebanyak 1 dan menambah A kepada A itu sendiri. Seperti ini, fungsi itu menjalankan proses pendaraban.
Rekursi ialah proses memanggil fungsi yang sama daripada fungsi itu sendiri. Apabila memanggil fungsi secara rekursif, kami mengemas kini atau menukar sedikit parameter yang ditetapkan supaya kesan yang sama tidak berlaku lagi dan lagi, dan kemudian membahagikan masalah kepada sub-masalah yang lebih kecil dan menyelesaikan masalah dengan menyelesaikan masalah yang lebih kecil ini secara bottom-up pendekatan . Hampir semua yang boleh dilaksanakan menggunakan gelung juga boleh dilaksanakan menggunakan rekursi. Dalam artikel ini, kita melihat proses mudah untuk mendarab dua integer menggunakan rekursi. Tambah integer beberapa kali untuk mendapatkan hasil pendaraban akhir.
Atas ialah kandungan terperinci Program C++ ditulis menggunakan rekursi untuk mengira hasil darab dua nombor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!