हमें 'num' और 'x' के रूप में धनात्मक पूर्णांक चर दिए गए हैं। कार्य संख्या ^ x की पुनरावर्ती गणना करना है, फिर परिणामी संख्या के अंकों को तब तक जोड़ना है जब तक कि एकल अंक प्राप्त न हो जाए और परिणामी एकल अंक आउटपुट होगा।
आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -
इनपुट - इंट नंबर =2345, इंट एक्स =3
आउटपुट - n^x में अंकों का पुनरावर्ती योग, जहां n और x बहुत बड़े हैं:8
स्पष्टीकरण - हमें सकारात्मक पूर्णांक मान संख्या के रूप में दिए गए हैं और x के मान 2345 और घात 3 के रूप में दिए गए हैं। सबसे पहले, 2345 ^ 3 यानी 12,895,213,625 की गणना करें। अब, हम इन अंकों को जोड़ देंगे यानी 1 + 2 + 8 + 9 + 5 + 2 + 1 + 3 + 6 + 2 + 5 यानी 44। अब हम 4 + 4 यानी 8 जोड़ देंगे। चूंकि हमने एक अंक हासिल किया है इसलिए , आउटपुट 8 है।
इनपुट - इंट नंबर =3, इंट x =3
आउटपुट - n^x में अंकों का पुनरावर्ती योग, जहां n और x बहुत बड़े हैं:9
स्पष्टीकरण - हमें संख्या के रूप में सकारात्मक पूर्णांक मान दिए गए हैं और x के रूप में 3 और 3 के रूप में शक्ति है। सबसे पहले, 3 ^ 3 यानी 9 की गणना करें। चूंकि हमने एकल अंक हासिल किया है, इसलिए आउटपुट 9 है और आगे की गणना की आवश्यकता नहीं है।पी>
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
एक पूर्णांक चर को num और x के रूप में इनपुट करें और डेटा को आगे की प्रक्रिया के लिए Recursive_Digit(num, x) फ़ंक्शन में पास करें।
-
समारोह के अंदर Recursive_Digit(num, x)
-
वेरिएबल 'टोटल' को लंबे समय तक घोषित करें और इसे फंक्शन Total_digits(num) पर कॉल करने के लिए सेट करें जो एक तर्क के रूप में पारित संख्या का अंक योग लौटाएगा।
-
वेरिएबल को लंबे प्रकार के टेम्परेचर के रूप में घोषित करें और इसे पावर % 6 के साथ सेट करें
-
IF कुल =3 या कुल =6 और शक्ति> 1 की जाँच करें और फिर 9 लौटाएँ।
-
ELSE IF, पावर =1 फिर कुल रिटर्न करें।
-
ELSE IF, power =0 फिर 1 लौटाएं।
-
ELSE IF, temp - 0 फिर Total_digits ((long) pow(total, 6))
पर कॉल वापस करें -
ELSE, कुल_डिजिट ((लंबी) पाउ (कुल, अस्थायी) लौटाएं)।
-
-
फंक्शन के अंदर long Total_digits(long num)
-
IF num =0 चेक करें, फिर 0 वापस करें। IF चेक करें, num% 9 =0 फिर रिटर्न 9।
-
वरना, वापसी संख्या% 9
-
उदाहरण
#include <bits/stdc++.h> using namespace std; long total_digits(long num){ if(num == 0){ return 0; } if(num % 9 == 0){ return 9; } else{ return num % 9; } } long Recursive_Digit(long num, long power){ long total = total_digits(num); long temp = power % 6; if((total == 3 || total == 6) & power > 1){ return 9; } else if (power == 1){ return total; } else if (power == 0){ return 1; } else if (temp == 0){ return total_digits((long)pow(total, 6)); } else{ return total_digits((long)pow(total, temp)); } } int main(){ int num = 2345; int x = 98754; cout<<"Recursive sum of digit in n^x, where n and x are very large are: "<<Recursive_Digit(num, x); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Recursive sum of digit in n^x, where n and x are very large are: 1