Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
WoodHobit
0 / 0 / 0
Регистрация: 03.10.2013
Сообщений: 5
#1

Задание с собеседования (циклы) - C++

03.10.2013, 17:24. Просмотров 1272. Ответов 21
Метки нет (Все метки)

День добрый!
Был сегодня на собеседовании, и было такое задание где было такое задание:

Описать одним предложением что делает данная функция
C++
1
2
3
4
5
6
7
8
9
10
    int FuncName (int a)
    {
        int sum=0
            while ( a != unsigned(-1))
            {
                m = (m+1) | m;
                sum++;
            }
            return sum;
    }
Ответил что это бесконечный цикл и данная функция просто вешает программу, мне сказали что ответ не правильный.

Ну вот мне теперь и интересно что ж такого делает данная функция???
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2013, 17:24     Задание с собеседования (циклы)
Посмотрите здесь:

ООП. Тестовое задание собеседования. - C++
Это тестовое задание для устройста на работу. Я не совсем понимаю что от меня хотят. Не могли бы вы мне далее составить набросок плана...

Задание на вложенные циклы! - C++
1. С помощью вложенных циклов вывести на экран указанное на картинке. Пожалуйста, напишите код понятный для новичка. Заранее благодарю.

Пример из собеседования по C++ - C++
Граждане, есть такой пример: class B { private: virtual void f() { std::cout << "B::f()" << std::endl;} public: void g() {...

Задания с++ с собеседования - C++
Предложите ваши варианты решения заданий 1. Перечислите все проблемы, которые вы видите в данном коде: class Foo { public: ...

Собеседования по С++ для джуна - C++
Добрый день, если вы бы проводили собеседования по С++ для джуна - какой вопрос по С++ вы бы припасли как самый сложный? Для...

Задача с собеседования (аллокатор памяти) - C++
Вопрос звучит так: "Напишите быстрый аллокатор памяти" Как я его понимаю: можно пожертвовать растратой памяти, всякими наворотами,...

Трудоустройство: что нужно знать для успешного прохождения собеседования в самые крутые компании? - C++
Добрый вечер. Напишите пожалуйста список того, что нужно знать для успешного прохождения собеседования в самые крутые компании, c++...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
WilFred
31 / 26 / 3
Регистрация: 11.03.2012
Сообщений: 71
03.10.2013, 17:27     Задание с собеседования (циклы) #2
WoodHobit, у меня вопрос: переменная m была объявлена глобально? Если нет то работать не будет...
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
03.10.2013, 17:28     Задание с собеседования (циклы) #3
Цитата Сообщение от WoodHobit Посмотреть сообщение
int sum=0
Они тут точку с запятой забыли поставить? Компилятор вывалится с сообщением об ошибке, не? ИМХО
WoodHobit
0 / 0 / 0
Регистрация: 03.10.2013
Сообщений: 5
03.10.2013, 17:29  [ТС]     Задание с собеседования (циклы) #4
Цитата Сообщение от WilFred Посмотреть сообщение
WoodHobit, у меня вопрос: переменная m была объявлена глобально? Если нет то работать не будет...
По логи вроде бы да, но там кто его знает. Просто был данный кусок кода и все
Firework
03.10.2013, 17:29
  #5

Не по теме:

отсеивает криворуких несмышлённых программистов

WoodHobit
0 / 0 / 0
Регистрация: 03.10.2013
Сообщений: 5
03.10.2013, 17:31  [ТС]     Задание с собеседования (циклы) #6
Цитата Сообщение от Super GT Посмотреть сообщение
Они тут точку с запятой забыли поставить? Компилятор вывалится с сообщением об ошибке, не? ИМХО
Не они а я забыл поставить, это задание вообще письменное было)))
WilFred
31 / 26 / 3
Регистрация: 11.03.2012
Сообщений: 71
03.10.2013, 17:31     Задание с собеседования (циклы) #7
Super GT, кстати да, не заметил) В общем тупо кусок неработающего кода)
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 478
Записей в блоге: 1
03.10.2013, 17:35     Задание с собеседования (циклы) #8
Цитата Сообщение от WilFred Посмотреть сообщение
WoodHobit, у меня вопрос: переменная m была объявлена глобально? Если нет то работать не будет...
Вот именно. Ответ одним предложением: данная функция ничего не делает поскольку она не компилируется.
MrGluck
Модератор
Эксперт CЭксперт С++
6997 / 4168 / 594
Регистрация: 29.11.2010
Сообщений: 11,050
03.10.2013, 17:37     Задание с собеседования (циклы) #9
Цитата Сообщение от WoodHobit Посмотреть сообщение
собиседования
Цитата Сообщение от WoodHobit Посмотреть сообщение
было такое задание где было такое задание
Цитата Сообщение от WoodHobit Посмотреть сообщение
не правильный

Нет объявления переменной m, эта функций просто не компилируется
WoodHobit
0 / 0 / 0
Регистрация: 03.10.2013
Сообщений: 5
03.10.2013, 17:40  [ТС]     Задание с собеседования (циклы) #10
Цитата Сообщение от MrGluck Посмотреть сообщение

Нет объявления переменной m, эта функций просто не компилируется
прошу прощения, не правильно функцию описал
C++
1
2
3
4
5
6
7
8
9
10
    int FuncName (int m)
    {
        int sum=0;
            while ( a != unsigned(-1))
            {
                m = (m+1) | m;
                sum++;
            }
            return sum;
    }
так правильней
WilFred
31 / 26 / 3
Регистрация: 11.03.2012
Сообщений: 71
03.10.2013, 17:43     Задание с собеседования (циклы) #11
Цитата Сообщение от WoodHobit Посмотреть сообщение
int FuncName (int m)
* * {
* * * * int sum=0;
* * * * * * while ( a != unsigned(-1))
* * * * * * {
* * * * * * * * m = (m+1) | m;
* * * * * * * * sum++;
* * * * * * }
* * * * * * return sum;
* * }
а ведь не объявлена)
WoodHobit
0 / 0 / 0
Регистрация: 03.10.2013
Сообщений: 5
03.10.2013, 17:45  [ТС]     Задание с собеседования (циклы) #12
Цитата Сообщение от WilFred Посмотреть сообщение
а ведь не объявлена)
вместо a должно быть m, моя опечатка
Firework
61 / 85 / 23
Регистрация: 01.04.2013
Сообщений: 585
03.10.2013, 17:53     Задание с собеседования (циклы) #13
эта функция показывает разницу
MAX_INT - m.
MrGluck
Модератор
Эксперт CЭксперт С++
6997 / 4168 / 594
Регистрация: 29.11.2010
Сообщений: 11,050
03.10.2013, 18:09     Задание с собеседования (циклы) #14
Я так понял, ТС хочет сказать про функцию
C++
1
2
3
4
5
6
7
8
9
10
int FuncName (int m)
{
    int sum=0;
    while ( m != unsigned(-1))
    {
        m = (m+1) | m;
        sum++;
    }
    return sum;
}
Там подсчитывается и возвращается число итераций вида m = m+1 | m до тех пор, пока m не переполнит максимальное значение типа int.

Добавлено через 14 минут
Цитата Сообщение от MrGluck Посмотреть сообщение
Там подсчитывается и возвращается число итераций вида m = m+1 | m до тех пор, пока m не переполнит максимальное значение типа int.
Это лишь в случае с положительным числом типа int.
Сначала приравнивается к наименьшему числу типа 2*n+1, которое превосходит наше m, далее идет обычное приращение типа m = 2*m+1
То есть сначала заполняет все 0 в представлении числа в двоичной форме если необходимо, а далее дорисовывает к этому представлению 1 (это и есть m = 2*m+1).
maxgri2000
10 / 10 / 1
Регистрация: 01.10.2013
Сообщений: 25
03.10.2013, 18:25     Задание с собеседования (циклы) #15
Надо было сразу не задумываясь ответить "Не знаю", и сейчас бы Вы уже работали кассиром-оператором этой АЗС. А некоторое время, потраченное на раздумье выдает в претенденте опасную склонность к логическому мышлению.

Добавлено через 3 минуты
Может быть функция косвенно оценивает разрядность ЭВМ, на которой ее запускают? или разрядность типа int?
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
03.10.2013, 18:36     Задание с собеседования (циклы) #16
Цитата Сообщение от WoodHobit Посмотреть сообщение
День добрый!
Был сегодня на собеседовании, и было такое задание где было такое задание:

Описать одним предложением что делает данная функция
C++
1
                    m = (m+1) | m;
что вот это за штука расскажите пожалуйста-никогда не встречал
MrGluck
Модератор
Эксперт CЭксперт С++
6997 / 4168 / 594
Регистрация: 29.11.2010
Сообщений: 11,050
03.10.2013, 18:48     Задание с собеседования (циклы) #17
newb_programmer, побитовая операция ИЛИ
получается так, например:
m = 0:
m = 1 | 0 = 1
m = 10 | 1 = 11 // 10 это 2 в двоичной системе счисления. Получается, сравниваются 10 и 01
m = 100 | 11 = 111 // в переводе на десятеричную 7

Добавлено через 54 секунды
Поразрядное сравнение двух чисел на предмет истинности. Если хотя бы в одном истинно - результат истина. Сравнение происходит в двоичной с.с. что значит, что числа сначала преобразуются в эту с.с., а затем, после выполнения операции, назад.
rrrFer
Заблокирован
03.10.2013, 19:03     Задание с собеседования (циклы) #18
Да нормальное задание. Функция считает количество нулей в двоичной записи числа, вроде бы.
Ну и этот трюк приколен, да: m = (m+1) | m;
----------
задание отсеивает ущербных, мне кажется )
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
03.10.2013, 19:08     Задание с собеседования (циклы) #19
хорошо, а теперь где и как объявлена переманная а?
ооооооооопс! здесь, оказывается, уже вторая страница, а я в начале ковыряюсь
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2013, 19:09     Задание с собеседования (циклы)
Еще ссылки по теме:

Циклы - C++
Воозникли трудности. Можете помочь ?) Необходимо протабулировать функции, зависящее от 2 переменных или от нескольких параметров....

Циклы - C++
В последовательности целых положительных чисел определить максимальное четное число и его порядковый номер. За раннее спасибо)

циклы - C++

Циклы - C++
Вычислить сумму квадратов всех положительных значений функции. Определить, для которого функция приобретает минимального значения. f(x)=...

Циклы в С++ - C++
1) Начав тренировки, спортсмен пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь...


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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
03.10.2013, 19:09     Задание с собеседования (циклы) #20
Цитата Сообщение от novi4ok Посмотреть сообщение
хорошо, а теперь где и как объявлена переманная а?
вот тут и вот так:
Цитата Сообщение от WoodHobit Посмотреть сообщение
int FuncName (int a)
Yandex
Объявления
03.10.2013, 19:09     Задание с собеседования (циклы)
Ответ Создать тему
Опции темы

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