|
|
back to boardПомогите понять мою ошибку Почему так не проходит(ошибка на 13): #include <iostream> int main() { int n,k; std::cin>>n>>k; if(n<=k) std::cout<<2; else std::cout<<n*2/k+n*2%k; return 0; } А так проходит: #include <iostream> int main() { int n,k; std::cin>>n>>k; if(n<=k) std::cout<<2; else{ if(n*2 % k == 0) std::cout<<n*2/k; else std::cout<<n*2/k+1; } return 0; } Ну или тернар(тоже не проходит - ошибка на 13): #include <iostream> int main() { int n,k; std::cin>>n>>k; (n<=k)?std::cout<<2:std::cout<<n*2/k+n*2 % k; return 0; } Может я чего не понимаю, может всё-таки где-то приоритет потерял, но ведь идентично же. Edited by author 08.10.2021 11:51 Теперь понял, %k может вернуть и больше, чем 1 Edited by author 08.10.2021 12:00 Edited by author 08.10.2021 12:02 C++ ответ: #include <iostream> int main() { int n,k; std::cin>>n>>k; (n<=k)?std::cout<<2:(n*2%k==0)?std::cout<<n*2/k:std::cout<<n*2/k+1; return 0; } Edited by author 08.10.2021 12:03 |
|
|