0 / 0 / 0
Регистрация: 24.09.2016
Сообщений: 73
1

Угадать число размером до 10^18

15.04.2018, 00:12. Показов 795. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Стоит задача в отыскании числа,которое загадала тестирующая система. На ввод подаются знаки:<,>,=. На вывод - числа соответственно.Написал
Кликните здесь для просмотра всего текста
C++
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    long int left=1;
    long int right=pow(10,18);
    
 
 
    char buff='a';  
    while(buff!='='){
        long int mid=(left+right+1)/2;
        cout<<mid;
        
        cout.flush();
        cin>>buff;
        if(buff=='<')
            right=mid-1;
        
        if(buff=='>')
            left=mid;
        if(buff=='=')
            cout<<left;
            cout.flush();
 
        
        
    }
    
}
Только вот возвращается с ошибкой времени выполнения. Не могу найти ошибку, а так же не могу посмотреть, на каком хитром примере она падает. Подскажите пожалуйста,как решить
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2018, 00:12
Ответы с готовыми решениями:

Программа случайным образом загадывает число от 1 до 99, а пользователь должен угадать число
Программа работает, но загадывает число не от 1 до 99. Помогите исправить ошибку .MODEL SMALL ...

Компьютер задает случайное число от 1 до 100 человек должен угадать число
Вот задали задачу учусь в 10 классе уже поставили 4 двойки за задачи,Обьясните решение и что к чему...

Компьютер загадывает число. Пользователь должен угадать это число
Игровая программа. Компьютер загадывает случайное число в диапазоне от 0 до 999. Пользователь...

Какое наименьшее число вопросов нужно задать чтобы гарантировано угадать число?
не мог найти куда написать свой пост ,решил сюда , задача из контрольной по информатике по ЕГЭ....

13
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
15.04.2018, 00:21 2
ну наверно цыкл бесконечен поэтому и:
Цитата Сообщение от dextroza Посмотреть сообщение
возвращается с ошибкой времени выполнения
0
0 / 0 / 0
Регистрация: 24.09.2016
Сообщений: 73
15.04.2018, 00:23  [ТС] 3
Antikl, он заканчивается, когда на ввод придет "="
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
15.04.2018, 00:27 4
Цитата Сообщение от dextroza Посмотреть сообщение
Antikl, он заканчивается, когда на ввод придет "="
да но если на ввод будет попадать мусор и никогда = то будет бесконечный цыкл я предполагаю это
0
0 / 0 / 0
Регистрация: 24.09.2016
Сообщений: 73
15.04.2018, 00:37  [ТС] 5
Antikl,
C++
1
2
3
4
5
Ввод    Вывод
  <               10
  <                6
  >                4 
  =                5


Пример ввода, мусор там не подается
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
15.04.2018, 00:51 6
Распространенные ошибки
Ошибки ввода-вывода
0
0 / 0 / 0
Регистрация: 24.09.2016
Сообщений: 73
15.04.2018, 00:55  [ТС] 7
Antikl, ошибка не вводе и выводе, а в логике. Я же не полный идиот,тыкал кнопочки и смотрел,правильно все выдает или нет.Для небольших чисел ответ находится, для больших нет
0
5 / 5 / 6
Регистрация: 23.03.2018
Сообщений: 98
15.04.2018, 01:30 8
dextroza, а если в 9 строке да и везде int на double поменять?
0
1391 / 1020 / 324
Регистрация: 28.07.2012
Сообщений: 2,809
15.04.2018, 01:45 9
dextroza, тебе нужна 64 битная арифметика.
https://www.cyberforum.ru/cgi-bin/latex.cgi?10^{18} в 32 бита не влезет.
0
5 / 5 / 6
Регистрация: 23.03.2018
Сообщений: 98
15.04.2018, 02:04 10
dextroza, такой вывод должен быть?
Миниатюры
Угадать число размером до 10^18  
0
5 / 5 / 6
Регистрация: 23.03.2018
Сообщений: 98
15.04.2018, 02:08 11
в смысле такой:
Миниатюры
Угадать число размером до 10^18  
0
0 / 0 / 0
Регистрация: 24.09.2016
Сообщений: 73
15.04.2018, 03:53  [ТС] 12
nonedark2008, использовал uint64_t и все равно ошибка(

Добавлено через 24 минуты
perevertysh, вот полный текст задания
Кликните здесь для просмотра всего текста
Ваш запрос должен представлять собой число
A
(
1

A

1
0
1
8
).
За все время работы программы вы должны сделать не более 100 запросов. После вывода запроса нужно обязательно вывести пустую строку, а затем использовать функции сброса буфера, чтобы часть вашего вывода не осталась в каком-нибудь буфере. Например, на С++ надо использовать функцию
flush.cout()
Если вы угадали число, то ничего больше выводить не нужно
Нам ведь не важен вид ответа,главное что тип численный и можем сравнить
0
1391 / 1020 / 324
Регистрация: 28.07.2012
Сообщений: 2,809
15.04.2018, 07:52 13
dextroza, текущий исправленный вариант покажи.
0
5 / 5 / 6
Регистрация: 23.03.2018
Сообщений: 98
15.04.2018, 13:02 14
dextroza, относительно того, что есть в коде все работает, если использовать вещественный тип данных. исправляйте ввод, чтобы программа запрашивала его в требуемом по заданию формате.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2018, 13:02
Помогаю со студенческими работами здесь

Написать программу, которая задумывает число в диапазоне от 1 до 10 и предлагает пользователю угадать число за 5 попыток
Возникла проблема, связанная с отсутствием мозгов ) Дали задание такого типа: Написать...

Написать программу, которая задумывает число в диапазоне от 1 до 10 и предлагает пользователю угадать это число за пять попыток
Помогите пожалуйста........ Написать программу, которая задумывает число в диапазоне от 1 до 10 и...

Написать игру “Угадай число!”. Компьютер загадывает число в определенном диапазоне, а пользователь пытается его угадать
помогите решить Написать игру “Угадай число!”. Компьютер загадывает число в определенном...

Написать программу, реализует следующую игровую ситуацию: компьютер задает случайное целое число в интерали от 1 до 10, а мне нужно это число угадать
Написать программу, реализует следующую игровую ситуацию: компьютер задает случайное целое число в...

Угадать число
Создать программу, которая задумывает число в диапазоне от 1 до 10 и предлагает пользователю...

угадать число
Написать прогу, которая &quot;задумывает&quot; число в диапозоне от 1 до 10 и предлогает пользователю угадать...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru