यह कोड कुछ भी प्रिंट नहीं कर रहा है, मैंने विभिन्न कंपाइलरों का प्रयास किया है


#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;

    int sock = n;
    int count = 0;

   while (sock > 0) {
        count+=1;

        if (sock % m == 0) {
            sock++;
        }
            sock--;
    }

    cout << count << endl;

    return 0;
}

मैंने क्या प्रयास किया है:

असल में मैं while लूप्स के साथ काम कर रहा था लेकिन मेरे कोड में कुछ समस्या है, कुछ भी प्रिंट नहीं हो रहा है, मैंने इसे अलग-अलग तरीकों से जांचा है लेकिन कोई समाधान नहीं आ रहा है

समाधान 1

मुझे लगता है समस्या यहीं है:

सी++
if (sock % m == 0) {
    sock++;
}
    sock--; // If you add 1 to sock and then subtract 1 it will go on for ever

लेकिन मुझे यकीन नहीं है कि कोड की वे पंक्तियाँ क्या करेंगी।

समाधान 2

जैसे ही sock से विभाज्य है mइसे बढ़ाया जाता है और तुरंत फिर से घटाया जाता है – इसलिए अगले लूप पुनरावृत्ति का मान समान होता है sock और लूप कभी बाहर नहीं निकलता।
चूँकि लूप कभी बाहर नहीं निकलता, कोड कभी नहीं पहुँचता cout और आपको कभी भी कोई आउटपुट नहीं दिखता.

ईमानदारी से कहूँ तो, डिबगर के साथ 2 मिनट आपको यह दिखा देंगे: डिबगर में अपने कोड का परीक्षण करने की आदत डालें क्योंकि यह आपका सबसे अच्छा विकास मित्र है!

コメント

タイトルとURLをコピーしました