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