Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 10

Задача на отгадывание числа компьютером

16.12.2016, 11:52. Показов 2198. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста решить задачу. Компьютеру нужно отгадать число, мной загаданное, методом деления интервала на пополам. Компьютер спрашивает у меня "Ваше число больше(или меньше) (то число, которое было серединой интервала)?", я могу отвечать только да или нет. Когда в конце остается два числа, например 7 и 8, я загадала 8, компьютер спрашивает "Ваше число 7?", я пишу нет, компьютер соответственно отвечает, что мое число это 8. Числа начала и конца интервала задается пользователем.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.12.2016, 11:52
Ответы с готовыми решениями:

Отгадывание числа от 0 до 100000
Добрый день! Помогите пожалуйста поправить код, для тех, кто знает язык, наверное, сразу будут видны ошибки. скажу сразу, язык знаю...

Отгадывание числа по заданным критериям
В свободное время одноклассники Вася и Петя любят играть в различные логические игры: морской бой, крестики-нолики, шахматы, шашки и многое...

Отгадывание задуманного пользователем числа от 0 до 7
Разработать программу, которая отгадывает задуманное пользователем число от 0 до 7, задавая ему вопросы вида «Задуманное число больше N?» и...

6
35 / 35 / 54
Регистрация: 26.11.2016
Сообщений: 115
16.12.2016, 16:23
Лучший ответ Сообщение было отмечено kristinka_kris как решение

Решение

примерно так?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class numClass {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in, "cp1251"));
        System.out.println("Введите интервал");
        int n = 0;
        int x = 0;
        int y = 0;
        String s;
        try {
            n = Integer.parseInt(reader.readLine());
        } catch (IOException ex) {
            System.out.println("Это не целое чило"); 
        }
        while (true) {   
            x=(n+y)/2;
            System.out.println("вы загадали: " + x + "?");
            s = reader.readLine();
            if(s.equalsIgnoreCase("да")){
               System.out.println("Ура! Вы загадали: " + x); 
               break;
            }else{
                if(s.equalsIgnoreCase("нет")){
                  System.out.println("Ваше число больше или меньше: " + x + "?"); 
                  s = reader.readLine();
                  if(s.equalsIgnoreCase("больше")){
                      y=x;
                  }else{
                     if(s.equalsIgnoreCase("меньше")){
                      n=x;
                      x=0;
                  } 
                  }
            }
            }       
        }
    }
}
1
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 10
16.12.2016, 16:43  [ТС]
да а можно вместо BufferedReader использовать Scanner? и вот это мне не понятно throws IOException, можно как-то без него обойтись?
0
35 / 35 / 54
Регистрация: 26.11.2016
Сообщений: 115
16.12.2016, 17:17
BufferedReader использовать Scanner
Можно, только вместо readLine будет nextInt, остальное без изменений
throws IOException
это нужно на случай возникновения ошибки ввода-вывода, со Scanner можно убрать
1
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 10
16.12.2016, 17:38  [ТС]
Исправила, как Вы написали, теперь сообщение "вы загадали" выводит два раза

Java
1
2
3
4
5
6
7
8
9
10
11
 Scanner sc = new Scanner(System.in);
        System.out.println("Введите интервал");
        int n = sc.nextInt();
        int y = sc.nextInt();
        int x = 0;
        String s;
 
        while (true) {
            x=(n+y)/2;
            System.out.println("вы загадали: " + x + "?");
            s = sc.nextLine();
Изображения
 
0
35 / 35 / 54
Регистрация: 26.11.2016
Сообщений: 115
17.12.2016, 09:21
nextLine() замените на next()
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Scanner sc = new Scanner(System.in, "cp1251");
        System.out.println("Введите интервал");
        int y = sc.nextInt();
        int n = sc.nextInt();
        int x = 0;
 
        while (true) {
            x=(n+y)/2;
            System.out.println("вы загадали: " + x + "?");            
            String s = sc.next();
            if(s.equalsIgnoreCase("да")){
                System.out.println("вы загадали: " + x + "!");
                break;
            }else{
                System.out.println("загаданное число больше или меньше " + x + "?");
                s = sc.next();
                if(s.equalsIgnoreCase("больше")){
                    y=x;
                }else{
                    n=x;
                }
            }
        }
1
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 10
17.12.2016, 13:11  [ТС]
Спасибо большое, очень помогли
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.12.2016, 13:11
Помогаю со студенческими работами здесь

Игра "Отгадывание числа"
Подскажите новичку, сегодня весь день ломал голову над эти кодом, то то не так, то это, в итоге вроде что-то вышло, но нужна оценка от...

Отгадывание слова
Ребята,помогите пожалуйста.Нужно разработать программу ,которая описывает процесс отгадывания пользователем слова с использованием...

Поиск. Отгадывание сканвордов
Есть игра Эрудит 1.6. открытая. Есть текстовик со словами по адресу C:\Program Files\E2\Dict\rus\expl\rus. и теперь Уже с пояснениями....

Олимпиадное задание: отгадывание чисел
Доброго времени суток, форумчане. Это вторая задача, которую я не решил. Надеюсь на вашу помощь. Вова объявил в классе, что обладает...

10 случайных чисел генерируются компьютером в интервале [5, 50] Вывести на экран числа ряда Фибоначчи. Найти их среднее
Доброе утро! Правильно ли я сделал эту задачу? 10 случайных чисел генерируются компьютером в интервале Вывести на экран числа ряда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru