[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; }
Lo que he probado:
En realidad, estaba trabajando con bucles while pero hay algún problema en mi código. No se imprime nada. Lo he comprobado con diferentes enfoques, pero no aparece ninguna solución.
Solución 1
Creo que el problema está aquí:
if (sock % m == 0) { sock++; } sock--; // If you add 1 to sock and then subtract 1 it will go on for ever
pero no estoy seguro de qué se supone que deben hacer esas líneas de código.
Solución 2
Tan pronto como sock
es divisible por m
se incrementa e inmediatamente se reduce nuevamente, por lo que la siguiente iteración del bucle tiene el mismo valor de sock
y el bucle nunca sale.
Como el bucle nunca sale, el código nunca llega al cout
y nunca ves ningún resultado.
Para ser honesto, 2 minutos con el depurador te habrían demostrado eso: ¡acostúmbrate a probar tu código en el depurador, ya que es el mejor amigo de desarrollo que tienes!
[ad_2]
コメント