Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C भाषा में पुनरावृत्त फ़ंक्शन (Iterative Function) का उपयोग करके संख्या को उल्टा करना

समस्या

C प्रोग्रामिंग भाषा में पुनरावृत्त फ़ंक्शन (while लूप) का उपयोग करके दी गई संख्या को उल्टे क्रम में कैसे प्रिंट करें?

एल्गोरिदम

चरण 1: चर number, reverse घोषित करें
चरण 2: reverse = 0 से आरंभ करें
चरण 3: जब तक number > 0:
    (a) reverse = reverse * 10 + number % 10
    (b) number = number / 10
चरण 4: reverse लौटाएं

उदाहरण: संख्या 356789

चरणnumbernumber % 10reverse (पहले)reverse = reverse*10 + अंक
1356789909
2356788998
33567798987
435669879876
5355987698765
63398765987653
70--लूप समाप्त

प्रोग्राम

#include <stdio.h>

int reverse(int number) {
    int rev = 0;
    while (number > 0) {
        rev = rev * 10 + number % 10;
        number = number / 10;
    }
    return rev;
}

int main() {
    int number;
    
    printf("एक संख्या दर्ज करें: ");
    scanf("%d", &number);
    
    printf("उल्टी संख्या: %d\n", reverse(number));
    
    return 0;
}

आउटपुट

एक संख्या दर्ज करें: 356789
उल्टी संख्या: 987653

महत्वपूर्ण बिंदु

  • यह विधि किसी भी लंबाई की पूर्णांक संख्या के लिए काम करती है।
  • अंतिम शून्य (trailing zeros) खो जाते हैं: 1200 → 21 (नहीं 0021)
  • ऋणात्मक संख्याओं के लिए, पहले निरपेक्ष मान लें या शर्त जोड़ें।
  • बड़ी संख्याओं के लिए long long का उपयोग करें ताकि ओवरफ्लो न हो।

संस्करण: ऋणात्मक संख्याओं को संभालना

int reverse(int number) {
    int rev = 0;
    int sign = (number < 0) ? -1 : 1;
    number = abs(number);
    
    while (number > 0) {
        rev = rev * 10 + number % 10;
        number /= 10;
    }
    
    return rev * sign;
}
  1. C भाषा में लिंक्ड लिस्ट के अंतिम k नोड्स को रिवर्स क्रम में प्रिंट करना (इटरेटिव दृष्टिकोण) C भाषा में लिंक्ड लिस्ट के अंतिम k नोड्स को रिवर्स क्रम में प्रिंट करना (इटरेटिव दृष्टिकोण)

    हमें लिंक्ड लिस्ट के k नंबर के नोड्स को रिवर्स क्रम में प्रिंट करना है। इस समस्या को हल करने के लिए हमें इटरेटिव दृष्टिकोण लागू करना होगा। इटरेटिव मेथड वह है जो आमतौर पर लूप का उपयोग करता है जो तब तक निष्पादित होता है जब तक कंडीशन का मान 1 या सत्य रहता है। मान लें, लिस्ट में नोड्स 29, 34, 43, 56

  1. C भाषा में लिंक्ड लिस्ट के अंतिम k नोड्स को रिवर्स क्रम में प्रिंट करना (रिकर्सिव दृष्टिकोण) C भाषा में लिंक्ड लिस्ट के अंतिम k नोड्स को रिवर्स क्रम में प्रिंट करना (रिकर्सिव दृष्टिकोण)

    कार्य लिंक्ड लिस्ट के अंत से शुरू होने वाले k नोड्स को रिकर्सिव दृष्टिकोण का उपयोग करके प्रिंट करना है। रिकर्सिव दृष्टिकोण वह है जिसमें फंक्शन खुद को बार-बार तब तक कॉल करता है जब तक कॉल की जा रही है और इसलिए परिणाम संग्रहीत करता है। मान लें, लिस्ट में नोड्स 29, 34, 43, 56 और 88 हैं और k का मान 2

  1. C भाषा में लिंक्ड लिस्ट के वैकल्पिक नोड्स प्रिंट करना (इटरेटिव मेथड) C भाषा में लिंक्ड लिस्ट के वैकल्पिक नोड्स प्रिंट करना (इटरेटिव मेथड)

    इस समस्या में, प्रोग्राम को दी गई लिंक्ड लिस्ट से वैकल्पिक नोड्स प्रिंट करने होंगे यानी एक छोड़कर एक प्रिंट करना, इटरेटिव मेथड का उपयोग करके। इटरेटिव मेथड वह है जो आमतौर पर लूप का उपयोग करता है जो तब तक निष्पादित होता है जब तक कंडीशन का मान 1 या सत्य रहता है। मान लें, लिस्ट में नोड्स 29, 34, 43,