Путаница с фрагментом кода на собеседованииJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Путаница с фрагментом кода на собеседовании

Сообщение Anonymous »

В интервью меня спросили, что делает приведенный ниже код.
[img]https://i.stack.imgur .com/vaWVx.png[/img]

class Case {

static int count1(int n) {
if (n == 0) {
return 0;
}
int m = n / 2;
if (2 * m != n) {
return 1 + count1(m);
}
return count1(m);
}

static int count0(int n) {
if (n == 0) {
return 1;
}
if (n == 1) {
return 0;
}
int m = n % 2;
return count0((n - m) / 2) + 1 - m;
}

static boolean equivalent(int n, int m) {
return ((count1(n) == count1(m)) && (count0(n) == count0(m)));
}
}

Во-первых, я должен упомянуть, что эта работа — это стажировка по аналитике данных, и единственный требуемый язык — это Python, и я студент-физик, поэтому для меня есть огромная разница между «/ /" и "/".
Сначала мы рассмотрим функцию count1. Я буквально подумал, что это вопрос с подвохом, потому что int(2*m != n) был вопросом с подвохом, потому что он мог вызвать ошибку значения (мне плохо, потому что меня много раз предупреждали о разнице между " //" и "/" в физике, я совершенно забыл, что в других языках "7" может использоваться для целочисленного деления с возвращаемым значением деления этажа. Поэтому я по глупости подумал, что это вопрос с подвохом, и сразу указал, что это будет возможно, выдаст сообщение об ошибке, и if(2*m !=n) может оказаться ненужным.
Теперь, что меня действительно смутило, так это count0, вторая функция Я просто указал, что программа ничего не решает, нет никакой закономерности. Интервьюер сказал, что она должна возвращать 0 или 1, но чтобы она возвращала 0 или 1, тогда должно быть count0((n-m/2+1 -m), то есть каждый термин должен быть в круглых скобках, верно?
Это интервью состоялось вчера вечером. Должен ли я написать своему интервьюеру и сказать ему, что, несмотря на неудачу ответить на вопрос, что делает первая функция, - это моя вина, но ваша вторая функция может иметь логическую ошибку? Конечно, лучше.
PS: ChatGPT сообщает мне, что это код Java, поэтому я добавляю тег «java».
Как я объяснено в тексте выше.
Я понимаю, что, возможно, испортил первую функцию, однако вот проверенный результат, проверенный с использованием Python:
# Implementing count0 function as described in the pseudocode
def count0(n):
if n == 0:
return 1
if n == 1:
return 0
m = n % 2
return count0((n - m) // 2) + 1 - m

# We will calculate the values of count0 for n = 0 to 20
results_count0 = {n: count0(n) for n in range(21)}

results_count0

результаты:
{0: 1, 1: 0, 2: 1, 3: 0, 4: 2, 5: 1, 6: 1, 7: 0, 8: 3, 9: 2, 10: 2, 11: 1, 12: 2, 13: 1, 14: 1, 15: 0, 16: 4, 17: 3, 18: 3, 19: 2, 20: 3}


Подробнее здесь: https://stackoverflow.com/questions/782 ... -interview
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Скользящее среднее с условиями (задача на собеседовании)
    Гость » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Гость
  • Нужна помощь в понимании конкретного вопроса на собеседовании по программированию [закрыто]
    Гость » » в форуме JAVA
    0 Ответы
    50 Просмотры
    Последнее сообщение Гость
  • Вопрос на собеседовании по поводу двоичного семафора и мьютекса
    Anonymous » » в форуме Linux
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Как написать несколько файлов классов Java в задачах низкоуровневого дизайна в одном файле на собеседовании?
    Anonymous » » в форуме JAVA
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Как написать несколько занятий в одном файле на собеседовании? [закрыто]
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»