[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; }
Ce que j’ai essayé :
en fait, je travaillais avec des boucles while mais il y a un problème dans mon code, il n’y a rien à imprimer, je l’ai vérifié avec différentes approches mais aucune solution ne vient
Solution 1
Je pense que le problème est là :
if (sock % m == 0) { sock++; } sock--; // If you add 1 to sock and then subtract 1 it will go on for ever
mais je ne suis pas sûr de ce que ces lignes de code sont censées faire.
Solution 2
Dès que sock
est divisible par m
il est incrémenté et immédiatement décrémenté à nouveau – donc la prochaine itération de boucle a la même valeur de sock
et la boucle ne se termine jamais.
Puisque la boucle ne se termine jamais, le code n’atteint jamais le cout
et vous ne voyez jamais de sortie.
Pour être honnête, 2 minutes avec le débogueur vous auraient montré cela par vous-même : habituez-vous à tester votre code dans le débogueur car c’est votre meilleur ami de développement !
[ad_2]
コメント