Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Virtuz
0 / 0 / 0
Регистрация: 10.10.2015
Сообщений: 13
#1

Задание на идентификацию бинарного числа - C++

14.10.2015, 16:07. Просмотров 309. Ответов 8
Метки нет (Все метки)

Входные данные

Входной файл INPUT.TXT содержит единственное целое число N, не превосходящее 10000 по абсолютной величине.

Выходные данные

В выходной файл OUTPUT.TXT выведите YES, если заданное число является бинарным, и NO в противном случае.
__
вроде бы написал все правильно, но робот почему-то отвергает мой вариант решения. Подскажите в чем проблема и есть ли она вообще?
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
#include <iostream>
 
using namespace std;
 
int main()
 
{
 float a;
for (;;)
{
 cin >> a;
 if (a<=10000)
 break;
}
  for (;a>2 || a<-2;)
   {
    a = a / 2;
   }
 
 if (a==2 || a==-2)
 cout <<"YES";
 
 else
 cout <<"NO";
 
 return 0;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2015, 16:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задание на идентификацию бинарного числа (C++):

Дан массив упорядоченных по возрастанию целых чисел. разработать алгоритм бинарного поиска заданного числа, результат номер искомого числа или 0 если - C++
помогите решить задачу: Дан массив упорядоченных по возрастанию целых чисел. разработать алгоритм бинарного поиска заданного числа,...

Как считать числа из бинарного файла - C++
Стоит задача: записать простые числа в бинарный файл. Числа берутся из промежутка 1...n. Все сделал, но не получается вывести в консоль...

Удалить из бинарного файла заданные числа - C++
Я думаю здесь все ясно. Нужно удалить из бинарного файла заданные числа.

Компоненты бинарного файла – целые числа - C++
Помогите создать программу: Компоненты бинарного файла – целые числа. Заменить компоненты равные нулю числом, соответствующим количеству...

Как прочитать числа из бинарного файла - C++
Нужна помощь. Пытаюсь читать из бинарного файла простые числа, но ничего не читается. Файл взят тут, там же и его описание, через Hex...

Вывести четные числа, с использованием бинарного поиска - C++
Есть код, создающий массив, заполняющий его цифрами от 0 до 10 и вывод его на экран int * array = new int; //Заполняем массив от 0...

8
andreymisin
Заблокирован
14.10.2015, 16:16 #2
Virtuz, мб я туплю но что по вашему бинарное число? я всегда считал бинарное т.е двоичное и оно состоит из 0 и 1?
1
Virtuz
0 / 0 / 0
Регистрация: 10.10.2015
Сообщений: 13
14.10.2015, 16:19  [ТС] #3
По условиям задачи бинарные числа это 2,4,8,16,32,64,128,256 и так далее.
0
andreymisin
Заблокирован
14.10.2015, 16:25 #4
Virtuz,
но робот почему-то отвергает мой вариант решения
а что за робот?
0
Virtuz
0 / 0 / 0
Регистрация: 10.10.2015
Сообщений: 13
14.10.2015, 16:28  [ТС] #5
Я отправляю исходный код на сайт и он автоматически проверяется.
0
andreymisin
Заблокирован
14.10.2015, 16:29 #6
Virtuz, ну может быть дело в том что вы не выводите в файл и берете не из файла?
0
Virtuz
0 / 0 / 0
Регистрация: 10.10.2015
Сообщений: 13
14.10.2015, 16:35  [ТС] #7
andreymisin, нет. Многие задачи подобного типа решил просто отправляя исходный код=)
0
andreymisin
Заблокирован
14.10.2015, 16:37 #8
Virtuz, тогда гуглите) может тут суть задачи определить является ли число какой либо степенью числа 2 и нужно делать наоборот не делить на 2 а 2 умножать само на себя пока не получиться данное число)
0
SatanaXIII
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,549
Завершенные тесты: 1
15.10.2015, 11:57 #9
Цитата Сообщение от Virtuz Посмотреть сообщение
По условиям задачи бинарные числа это 2,4,8,16,32,64,128,256 и так далее.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool IsMegaBinary( int &val )
{
  static int x(1);
  x *= 2;
  if( x > val )
    {
    x = 1;
    return false;
    }
  if( x == val )
    {
    x = 1;
    return true;
    }
  IsMegaBinary( val );
}
Добавлено через 42 минуты
Цитата Сообщение от Virtuz Посмотреть сообщение
отвергает мой вариант решения
А блин.
Цитата Сообщение от Virtuz Посмотреть сообщение
не превосходящее 10000 по абсолютной величине
Это модуль числа. Следовательно в двенадцатой строке должно быть:
C++
12
if (abs(a)<=10000)
P.S.
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
#include <iostream.h>
 
bool IsMegaBinary( int val_ )
{
  unsigned int val = abs( val_ );
 
  if( val < 2 )
    return false;
 
  unsigned int x(1);
 
  do
    {
    if( val & x )
      return false;
 
    x *= 2;
    }
  while( x < val );
 
  return true;
}
 
int main()
{
 
for( int i=-65; i<65; i++ )
  cout << i << "->" << IsMegaBinary( i ) << endl;
 
cin.ignore();
return 0;
}
0
15.10.2015, 11:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2015, 11:57
Привет! Вот еще темы с ответами:

Дополнить класс, включив метод подсчета числа узлов заданного бинарного дерева - C++
Изучить приведенный пример реализации класса «Дерево двоичного поиска», для которого реализованы следующие схемы обхода бинарного дерева: ...

Прочитать из бинарного файла байт номер 0 и отобразить его на дисплее в виде числа - C++
прочитать из бинарного файла байт номер 0 и отобразить его на дисплее в моем коде программа читает символ и на экране печатает аски...

Удалить из бинарного файла, в котором записаны целые числа все четные элементы. - C++
Решите очень нужно. Удалить из бинарного файла, в котором записаны целые числа все четные элементы.

Удалить из бинарного файла, в котором записаны целые числа все четные элементы - C++
Удалить из бинарного файла, в котором записаны целые числа все четные элементы


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru