Mã này không in bất cứ thứ gì. Tôi đã thử các trình biên dịch khác nhau

lập trình


#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;
}

Những gì tôi đã thử:

Thực ra tôi đang làm việc với các vòng lặp while nhưng có một số vấn đề trong mã của tôi, không in được gì cả. Tôi đã kiểm tra nó bằng các cách tiếp cận khác nhau nhưng không có giải pháp nào được đưa ra

Giải pháp 1

Tôi nghĩ vấn đề là ở đây:

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

nhưng tôi không chắc những dòng mã đó dùng để làm gì.

Giải pháp 2

Càng sớm càng sock chia hết cho mnó được tăng lên và lại giảm đi ngay lập tức – vì vậy lần lặp tiếp theo có cùng giá trị là sock và vòng lặp không bao giờ thoát ra.
Vì vòng lặp không bao giờ thoát nên mã không bao giờ đạt tới cout và bạn không bao giờ thấy bất kỳ đầu ra nào.

Thành thật mà nói, 2 phút với trình gỡ lỗi sẽ giúp bạn tự mình thấy được điều đó: hãy làm quen với việc kiểm tra mã của bạn trong trình gỡ lỗi vì đó là người bạn phát triển tốt nhất mà bạn có!

コメント

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