Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2010, 09:55   #1
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию C# готовая задача, какой будет конечный результат?

Сама задачка:

Цитата:
public class main {
public static void main(string[] args) {
int res = Sh(new int[] (1, 2, 6, 5, 4), 4);
System.out.printLn(res);
}

static int Sh(int[] a, int x) {
if (a.length == 0) {
return 0;
}
if (a[a.length - 1] < x) {
return a.length;
}
int i = 0;
int j = a.length;
while (i + 1 < j) {
int m = i + (j - i) / 2;
if (a[m] >= x) {
j=m;
} else {
i = m;
}
}
if (a[i] >= x) {
return i;
} else {
return j;
}
}
каков будет результат? Вот мои рассуждения:

имеем массив a=(1, 2, 6, 5, 4)
и число x=4;

if (a.length==0) {
дальше если кол-во элементов массива = 0 то бла бла, у нас их 5
}
if (a[a.length-1]<x) {
если элемент массива а с индексом [a.length-1] т.е. 5-1 с индексом 4 меньше x
то бла бла бла, у нас они равны
}
дальше
i=0;
j=кол-во элементов массива = 5
цикл вайл (пока) (i+1<j) {
==== 1 шаг ====
m=i+(j-i)/2; //m присваиваем значение (переменные и их значения будут в квд

скобках
[i=0] + ([j=5]-[i=0])/2 = 2
если элемент массива с индексом m=2 (6) больше или равно x=4 то нет иначе
if (a[m]>=x) {
j = m;
} else {
i=m;
}
и у нас теперь равно j=6 а i так и равно 0
==== 2 шаг ====
формулу наверху повторять не буду
[i=0] + ([j=6]-[i=0])/2 = 3
описание выше не повторяю
if (a[m]>=x) { //a[m] третий элемент массива начиная с нуля равен 5
значит j=5 а так и остался i=0
}
==== 3 шаг ====
[i=0] + ([j=5]-[i=0])/2 = 2
if (a[m]>=x) { //a[m] третий элемент массива равен 5>= 4
j=5; i=0
}
==== 4 шаг ====
и т.д.

где я тут ошибаюсь поправте? компиля под рукой нет, проверится не могу, сам си шарп не изучал и в глаза не видел. Каков результат то функции будет?
dr.Chas вне форума Ответить с цитированием
Старый 25.11.2010, 20:50   #2
Ka6aSH
Новичок
Джуниор
 
Регистрация: 22.11.2010
Сообщений: 2
По умолчанию

Оффтоп: Это, если я не ошибаюсь код java...
Кит решаете?
Ka6aSH вне форума Ответить с цитированием
Старый 26.11.2010, 08:58   #3
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от Ka6aSH Посмотреть сообщение
Оффтоп: Это, если я не ошибаюсь код java...
Кит решаете?
А может и ява Могу и ошибаться в глаза ни то, ни то не видел Да попросили вчера посмотреть, уже давно кончилось, а интересно, в чём же я ошибься
dr.Chas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
какой будет код вычисления для D Витас Помощь студентам 1 22.03.2010 15:37
Результат перевода из 10й сис-мы в 16-ю занести в табл(10-е число - 16), до тех пор пока не будет введено Maemi_IT Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 11.01.2010 21:27
Если y – вещественная переменная, а n – целая, то оператор присваивания какой будет иметь вид? Naruto63 Помощь студентам 6 23.11.2009 16:30
Я сделал конечный автомат (правильно?) Arkuz Общие вопросы Delphi 2 11.10.2008 15:59
Конечный автомат на Delphi Arkuz Общие вопросы Delphi 4 02.10.2008 23:50