| 
 | 
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  |  
  | 
|