|
|
|
|
|
|
|
Вернуться
| 1 Полецая Анастасия Олеговна, 20 апреля 2024 г. 12:56:34 | |
// #include <bits/stdc++.h> #include <iostream> using namespace std; long long int calculateMiddle(long long int left, long long int right) { long long int sum = left + right; if (sum % 2 == 0) { return sum / 2; } return (sum + 1) / 2; } void printMiddle(long long middle) { cout.flush(); cout << middle << endl; } string askUser(long long int middle) { string sign; printMiddle(middle); cin >> sign; return sign; } int main() { long long int right = 100000000, left = 1; long long int middle = 0; string sign; while (true) { middle = calculateMiddle(left, right); sign = askUser(middle); if (sign == "=") { break; } if (sign == ">") { left = middle; } else if (sign == "<") { right = middle; } else { // throw std::invalid_argument("invalid user input. Expected: =, <, <"); return 1; } } return 0; } Окей, теперь у меня такой код и нет Presentation eror, но ошибка на 5 тесте..
|
|
|
| 2 Беляев Сергей Николаевич, 20 апреля 2024 г. 7:01:49 | |
|
В if (sign == "=") уберите PrintMiddle. После того как программа жюри выводит "=" ваша программа должна сразу завершится, а вы еще раз выводите отгаданное число.
|
|
|
| 3 Полецая Анастасия Олеговна, 20 апреля 2024 г. 6:36:36 | |
// #include <bits/stdc++.h> #include <iostream> using namespace std; long long int calculateMiddle(long long int left, long long int right) { long long int sum = left + right; if (sum % 2 == 0) { return sum / 2; } return (sum + 1) / 2; } void printMiddle(long long middle) { cout << middle << endl; cout.flush(); } string askUser(long long int middle) { string sign; printMiddle(middle); cin >> sign; return sign; } int main() { long long int right = 100000000, left = 1; long long int middle = 0; string sign; while (true) { middle = calculateMiddle(left, right); sign = askUser(middle); if (sign == "=") { printMiddle(middle); break; } if (sign == ">") { left = middle; } else if (sign == "<") { right = middle; } else { // throw std::invalid_argument("invalid user input. Expected: =, <, <"); return 1; } } return 0; } сейчас я сделала код, где компьютер выводит число, а потом пользователь выводит знак. Но так тоже Presentation error. Что от меня хотят то?
|
|
|
| 4 Терентьев Михаил Павлович, 19 апреля 2024 г. 19:08:17 | |
|
Это интерактивная задача. Ваша программа должна общаться с программой-жюри. Программа-жюри загадывает число и готова принимать запросы от вашей программы. Поэтому изначально ваша программа должны спросить у программы-жюри информацию насчет какого-то числа, то есть вывести в стандартный поток вывода число. После этого программа-жюри получит число от вашей программы и на основе него даст ответ. Этот ответ ваша программа должна считать через стандартный поток ввода и сделать какие-то выводы, что делать дальше, какие запросы делать. То есть на вход вашей программе придет ответ, который надо прочитать.
|
|
|
| 5 Полецая Анастасия Олеговна, 19 апреля 2024 г. 18:22:26 | |
// #include <bits/stdc++.h> #include <iostream> using namespace std; long long int calculateMiddle(long long int left, long long int right) { long long int sum = left + right; if (sum % 2 == 0) { return sum / 2; } return (sum + 1) / 2; } void printMiddle(long long middle) { cout << middle << endl; cout.flush(); } string askUser(long long int middle) { string sign; printMiddle(middle); cin >> sign; return sign; } int main() { long long int right = 100000000, left = 1; long long int middle = 0; string sign; cin >> sign; while (true) { middle = calculateMiddle(left, right); sign = askUser(middle); if (sign == "=") { printMiddle(middle); break; } if (sign == ">") { left = middle; } else if (sign == "<") { right = middle; } else { // throw std::invalid_argument("invalid user input. Expected: =, <, <"); return 1; } } return 0; } Решаю вот эту задачку. вот мой код. Изначально, я запуталась: компьютер или пользователь вводит и что за стандартный ввод и вывод. Теперь у меня Presentation error. Help!
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| | | |