Page 1 of 18 1234567891011 ... LastLast
Results 1 to 10 of 174

Thread: Вопрос на засыпку (Java, C#)

  1. #1
    Патриот смешно's Avatar
    Join Date
    Apr 2003
    Location
    Страна чудес
    Posts
    55,561

    Lightbulb Вопрос на засыпку (Java, C#)

    ну что господа "профессионалы", пора бы вас протестировать. /подмигиваю/

    Итак задачка ( просьба НИКАКИХ reference, подсказок и компилирования..) используйте чисто ваш мозг. Пожалуйста ПОДРОБНО расскажите как получили ответ. Даю вам 3 дня, затем скажу ответ (с обьяснением). если кто незнает, то просьба не флудите.

    итак....чему будет равно j

    int j = 14;
    j += j++ % 3;


    4 main reasons why Boston is the best place to live:Red Sox (Baseball), Patriots (Football) World Champions
    Celtics the NBA (Basketball), Bruins Stanley Cup (Hockey)

  2. #2
    подниматель пингвинов crazy-mike's Avatar
    Join Date
    Nov 2006
    Location
    L'viv
    Posts
    179,963

    Default Re: Вопрос на засыпку (Java, C#)

    14 :rofl:
    :grum::grum:
    14++ = 15
    15 % 3 = 0
    14 + 0 = 14
    Жизнь дается человеку один раз и прожить ее надо так, чтобы не ошибиться в рецептах.
    Строить Асгардию побуждает тьма, посетившая людские души

  3. #3
    Патриот смешно's Avatar
    Join Date
    Apr 2003
    Location
    Страна чудес
    Posts
    55,561

    Default Re: Вопрос на засыпку (Java, C#)

    подождём может ещё кто ответит....
    4 main reasons why Boston is the best place to live:Red Sox (Baseball), Patriots (Football) World Champions
    Celtics the NBA (Basketball), Bruins Stanley Cup (Hockey)

  4. #4
    подниматель пингвинов crazy-mike's Avatar
    Join Date
    Nov 2006
    Location
    L'viv
    Posts
    179,963

    Default Re: Вопрос на засыпку (Java, C#)

    Quote Originally Posted by смешно View Post
    подождём может ещё кто ответит....
    просто приоритет унарной операции выше чем приоритет бинарной. Инкремент (++) ведь унарная операция. Правда есть языки , где всё это выполняется подряд без учёта приоритета. После перевода выражения в посфиксную польскую запись сразу всё видно вообще-то.
    Last edited by crazy-mike; 04-10-2011 at 02:13 AM.
    Жизнь дается человеку один раз и прожить ее надо так, чтобы не ошибиться в рецептах.
    Строить Асгардию побуждает тьма, посетившая людские души

  5. #5
    who cares... mineral's Avatar
    Join Date
    Apr 2006
    Location
    Denver
    Posts
    29,103

    Default Re: Вопрос на засыпку (Java, C#)

    Вопрос куйня... Пытаются запутать на ассайментах...

    Разбивка проста...

    n++ экзекьютается после выполнения операции... (сорри... привычка к Hungarian системе... n- integer)

    То бишь, в данной формуле она иррелевант, потомушта идет новый эссайнмент to n.

    В общем, формула n+=n++%3 эквивалентна n=n+ n++%3, что дает n=14 + 14%3= 14 +2 = 16

    То бишь, ответ - 16.

    Другой вопрос, если n+=++n%3. Тады инкремент случается перед операцией... То бишь, n= 14 + (14+1)%/3=14. Первая n перед операцией и значения не поменяет, то бишь 14.

    Другой коленкор, ежели n= ++n%3 +n ... Тады, короче, n= (14+1)%3 + (14+1)... То бишь 15...

    В общем, вопрос на знание, что делает пре или пост ++ и на переседенс оф операторз... Делов-то... :tongue:

    Вы мне лучше скажите, как впендюрить custom class в Settings класс в С# проекте... чтоб его можно было редактировать в Settings Designer... Вот это вот вопросец... Ну, и если уж совсем скучно будет, поиграйтесь с бинарными шифтами на знаковых интегральных типах... или там заковыристыми бинарными XOR-ами... :tongue:

    Или, уж если начинать с самой простой задачки, напишите строку кода, которая найдет индекс числа 9 в следующих строках числовых последовательностей "99,999,9,98,89" и "9,89,999,98" и "99,9", не используя Regular Expressions или LINQ... :tongue:
    Last edited by mineral; 04-10-2011 at 02:55 AM.

  6. #6
    подниматель пингвинов crazy-mike's Avatar
    Join Date
    Nov 2006
    Location
    L'viv
    Posts
    179,963

    Default Re: Вопрос на засыпку (Java, C#)

    Оптимизирующий компилятор вообще должен был исключить генерацию кода после int j = 14; :grum:
    Жизнь дается человеку один раз и прожить ее надо так, чтобы не ошибиться в рецептах.
    Строить Асгардию побуждает тьма, посетившая людские души

  7. #7
    Диагностик Лось's Avatar
    Join Date
    Jan 2005
    Location
    NY
    Posts
    820

    Default Re: Вопрос на засыпку (Java, C#)

    Ответ даже проще "Зависит от компилятора/интерпритатора".
    Только не надо завидывать!
    Только не надо запугивать!
    Только не надо ...

  8. #8
    Патриот смешно's Avatar
    Join Date
    Apr 2003
    Location
    Страна чудес
    Posts
    55,561

    Default Re: Вопрос на засыпку (Java, C#)

    Майки ответил не правильно, а Минерал содрал ответ из интернета - не своими мозгами, так что НИКТО так правильно и не ответил.

    А так Минерал всё правильно расписал.
    4 main reasons why Boston is the best place to live:Red Sox (Baseball), Patriots (Football) World Champions
    Celtics the NBA (Basketball), Bruins Stanley Cup (Hockey)

  9. #9
    подниматель пингвинов crazy-mike's Avatar
    Join Date
    Nov 2006
    Location
    L'viv
    Posts
    179,963

    Default Re: Вопрос на засыпку (Java, C#)

    Quote Originally Posted by смешно View Post
    Майки ответил не правильно
    я проверить ведь могу на gcc. :grum:
    17 получилось почему-то.
    :grum:
    компилятор gcc 3.4.6.
    Last edited by crazy-mike; 04-13-2011 at 09:39 AM.
    Жизнь дается человеку один раз и прожить ее надо так, чтобы не ошибиться в рецептах.
    Строить Асгардию побуждает тьма, посетившая людские души

  10. #10
    подниматель пингвинов crazy-mike's Avatar
    Join Date
    Nov 2006
    Location
    L'viv
    Posts
    179,963

    Default Re: Вопрос на засыпку (Java, C#)

    Quote Originally Posted by смешно View Post
    Майки ответил не правильно
    я проверить ведь могу на gcc. :grum:
    17 получилось почему-то.
    :grum:
    statitc int j=14,a,b;
    b=14;
    a=(b++)%3; // (b%3)++
    j+=a;
    ///////////////////
    вот так получается 16.
    Но вот так:
    static int j=14;
    j+=j++%3; // j%3 = 2, j++ // 3
    получается 17
    :grum: полный дурдом!
    Но я у себя всегда скобки ставлю! :rofl:
    Last edited by crazy-mike; 04-13-2011 at 09:47 AM.
    Жизнь дается человеку один раз и прожить ее надо так, чтобы не ошибиться в рецептах.
    Строить Асгардию побуждает тьма, посетившая людские души

Page 1 of 18 1234567891011 ... LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Russian America Top. Рейтинг ресурсов Русской Америки. Terms of Service | Privacy Policy Рейтинг@Mail.ru