AD

числовая последовательность

Тема в разделе "Программирование", создана пользователем NoMercyPWNZ, 14 Feb 2020 в 11:38.

  • есть ли способ проще, а главное быстрее считывать неизвестное количество интов, введенных в консоль и разделенных при помощи пробела?

    Aor9TMl.png

  • офк да, юзай пайтон AYAYA.png?1574635125

    list(map(int, input().split())) annie2.png?1574587138

  • Автор темы
    kure534 сказал(а):

    офк да, юзай пайтон AYAYA.png?1574635125

    list(map(int, input().split())) annie2.png?1574587138

    Нажмите, чтобы раскрыть...

    мне скачивать петухон чтоб элементарные задачи решались по 30 лет?

  • Можно по символам, просто я пропустил что они разделены проблемами. Тут только строку сплитить. А почему тебя скорость не устраивает?

  • Автор темы
    saw_tooth сказал(а):

    можно по символам, просто я пропустил что они разделены проблемами. Тут только строку сплитить. А почему тебя скорость не устраивает?

    Нажмите, чтобы раскрыть...

    мой вариант самый быстрый? мне важно найти именно самый быстрый из возможных

  • Изначально читать не гетлайном, а cin'ом и смещением. Надеюсь смог донести идею, с телефона просто лень писать код

  • Автор темы
    sentinaxe сказал(а):

    Изначально читать не гетлайном, а cin'ом и смещением. Надеюсь смог донести идею, с телефона просто лень писать код

    Нажмите, чтобы раскрыть...

    как мне работать std::cin>> jopa >> nejopa>> ..... >> с последовательностью, которая может быть 3 числа, а может быть 3333333333333333 чисел?

  • NoMercyPWNZ сказал(а):

    мой вариант самый быстрый? мне важно найти именно самый быстрый из возможных

    Нажмите, чтобы раскрыть...

    самый быстрый не будет на плюсовых контейнерах, я гарантирую это.

    Можно заморочится и через getс забирать, всё до пробела.

  • NoMercyPWNZ сказал(а):

    как мне работать std::cin>> jopa >> nejopa>> ..... >> с последовательностью, которая может быть 3 числа, а может быть 3333333333333333 чисел?

    Нажмите, чтобы раскрыть...

    while

  • NoMercyPWNZ сказал(а):

    мне скачивать петухон чтоб элементарные задачи решались по 30 лет?

    Нажмите, чтобы раскрыть...

    Я думаю сплит есть в любом нормальном яп, так что удачи pepeshapka.png

  • Автор темы
    sentinaxe сказал(а):

    while

    Нажмите, чтобы раскрыть...

    с вайлом проблема состоит в том, что когда я вбиваю рандомный набор чисел (4 2 5 2 5 2 9 и т.д.) сразу в консоль (ctrl+C ctrl+V прямо в консоль), то вайл будет ждать ещё 1 ввод чего угодно, но не числа чтоб закончить свою работу


    kekmachine сказал(а):

    Я думаю сплит есть в любом нормальном яп, так что удачи pepeshapka.png

    Нажмите, чтобы раскрыть...

    чем сплит в данный момент отличается по скорости от того, что я посимвольно ищу пробелы? 

  • NoMercyPWNZ сказал(а):

    с вайлом проблема состоит в том, что когда я вбиваю рандомный набор чисел (4 2 5 2 5 2 9 и т.д.) сразу в консоль (ctrl+C ctrl+V прямо в консоль), то вайл будет ждать ещё 1 ввод чего угодно, но не числа чтоб закончить свою работу

    Нажмите, чтобы раскрыть...

    ну я хз ты хочешь и рыбку съесть и чтобы в три строчки за тебя софт все сосчитал. ctrl+z отменяет ожидание ввода после строки, если уж на то пошло

  • Автор темы
    sentinaxe сказал(а):

    ну я хз ты хочешь и рыбку съесть и чтобы в три строчки за тебя софт все сосчитал. ctrl+z отменяет ожидание ввода после строки, если уж на то пошло

    Нажмите, чтобы раскрыть...

    автоматическое тестирование не сможет ctrl+Z нажать

  • NoMercyPWNZ сказал(а):

    автоматическое тестирование не сможет ctrl+Z нажать

    Нажмите, чтобы раскрыть...

    придумай терминирующий символ

  • Автор темы
    sentinaxe сказал(а):

    придумай терминирующий символ

    Нажмите, чтобы раскрыть...

    на вход дается "число число число .... число" и ничего более, автоматическое тестирование не обмануть (и лучше вообще не пытаться иначе мне хуже будет)

  • NoMercyPWNZ сказал(а):
    то вайл будет ждать ещё 1 ввод чего угодно, но не числа чтоб закончить свою работу
    Нажмите, чтобы раскрыть...

    do/while в помощь

     

  • NoMercyPWNZ сказал(а):

    чем сплит в данный момент отличается по скорости от того, что я посимвольно ищу пробелы? 

    Нажмите, чтобы раскрыть...

    Это плюсы наверное, видимо отличный язык, где каждую микрофункцию надо в ручную реализовывать roflanLico.png Насчет отличается, там много нюансов может быть для каждого яп, но я доверяю дядькам из микрософта которые пишут готовые функции(для шарпа например).

  • NoMercyPWNZ сказал(а):

    на вход дается "число число число .... число" и ничего более, автоматическое тестирование не обмануть (и лучше вообще не пытаться иначе мне хуже будет)

    Нажмите, чтобы раскрыть...

    Попробуй вот так

    string input;

    while (getline(cin, input, ' '))

    {

    твой пушбек

    }

  • NoMercyPWNZ сказал(а):

    мой вариант самый быстрый? мне важно найти именно самый быстрый из возможных

    Нажмите, чтобы раскрыть...

    Зависит от компилятора и архитектуры. Если скорость прямо очень-очень критична - компиль с разными флагами, разными компиляторами и чекай асм-код каким-нибудь отладчиком вроде OllyDbg или x96dbg

    Также в таких ситуациях очень помогает этот сайтец https://godbolt.org/

    Но это надо будет очень и очень долго считать и анализировать.


    Также стоит добавить, что жонглирование порядком/комбинациями if-ов и циклов, а также различными вариантами циклов (for/while/do while) абсолютно не принесет пользы, т.к. компиляторы уже достаточно умны, чтобы понять цель и составить максимально (ну в большинстве случаев) оптимальный код 


    А, ну еще можно добавить, что раз уже речь о быстродействии - std::string после опред. кол-ва символов (вроде около 20) начинает работать с кучей, а не стеком, std::vector - аналогично работает с кучей.

    В итоге память выделяется абы где, доступ через указатели и оффсеты, мисы по кэшу и все вытекающие последствия 

  • Ого, сколько кода, я просто в одну строку пишу на пайтоне, тут не смогу подсказать. 

Кто смотрит тему (Пользователи: 0, Гости: 0)