[ad_1]
#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
問題はここにあると思います:
C++
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 分間使用すれば、それがわかるでしょう。デバッガーは開発の最良の友人であるため、デバッガーでコードをテストすることに慣れてください。
[ad_2]
コメント