इस लेख में हम समझेंगे कि रिकर्सन का उपयोग करके किसी संख्या का फैक्टोरियल कैसे निकाला जाता है। किसी संख्या का फैक्टोरियल उसके स्वयं और उससे छोटी सभी संख्याओं के गुणनफल के बराबर होता है।
फैक्टोरियल शून्य से बड़ी प्राकृतिक संख्याओं पर लागू एक फंक्शन है। फैक्टोरियल फंक्शन का प्रतीक संख्या के बाद विस्मयादिबोधक चिह्न है, जैसे: 5!
डेमोनस्ट्रेशन
इनपुट:
संख्या दर्ज करें: 7
आउटपुट:
7 का फैक्टोरियल: 5040
एल्गोरिदम
चरण 1 - शुरू चरण 2 - एक इंटीजर 'my_input' और एक लॉन्ग 'my_result' घोषित करें चरण 3 - उपयोगकर्ता से मान पढ़ें या परिभाषित करें चरण 4 - एक रिकर्सिव फंक्शन 'factorial' परिभाषित करें जो एक इंटीजर लेता है और इनपुट को उसके पिछले नंबर से गुणा करके लौटाता है जब तक इनपुट 1 तक नहीं पहुंच जाता चरण 5 - रिकर्सिव फंक्शन को कॉल करें और 'my_input' पास करें। रिटर्न वैल्यू स्टोर करें चरण 6 - परिणाम प्रदर्शित करें चरण 7 - रुकें
उदाहरण 1: यूजर इनपुट के साथ
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
int my_input;
long my_result;
System.out.println("आवश्यक पैकेज इम्पोर्ट हो चुके हैं");
Scanner my_scanner = new Scanner(System.in);
System.out.println("रीडर ऑब्जेक्ट परिभाषित किया गया है");
System.out.print("संख्या दर्ज करें: ");
my_input = my_scanner.nextInt();
my_result = factorial(my_input);
System.out.println(my_input + " का फैक्टोरियल: " + my_result);
}
public static long factorial(int my_input) {
if (my_input >= 1)
return my_input * factorial(my_input - 1);
else
return 1;
}
}
आउटपुट
आवश्यक पैकेज इम्पोर्ट हो चुके हैं रीडर ऑब्जेक्ट परिभाषित किया गया है संख्या दर्ज करें: 7 7 का फैक्टोरियल: 5040
उदाहरण 2: प्री-डिफाइंड वैल्यू के साथ
public class Factorial {
public static void main(String[] args) {
int my_input = 7;
long my_result;
System.out.println("संख्या परिभाषित है: " + my_input);
my_result = factorial(my_input);
System.out.println(my_input + " का फैक्टोरियल: " + my_result);
}
public static long factorial(int my_input) {
if (my_input >= 1)
return my_input * factorial(my_input - 1);
else
return 1;
}
}
आउटपुट
संख्या परिभाषित है: 7 7 का फैक्टोरियल: 5040