Кресты / Говнокод #28153 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
#include <iostream>
#include <vector>
#include <string>

int main()
{
    int n = 6;
    std::vector<int> vec;

    for (int i = 0; i < n; i++)
    {
        if ((i % 2) == 0)
        {
            std::reverse(vec.begin(), vec.end());
        }

        vec.push_back(i);

        if ((i % 2) != 0)
        {
            std::reverse(vec.begin(), vec.end());
        }

        for (int j = 0; j < vec.size(); j++)
        {
            std::cout << vec[j] + 1;
            if (j != vec.size() - 1)
            {
                std::cout << "-";
            }
        }
        std::cout << "\n";

    }
}

Цель напечатать на экране следующее:
1
2-1
1-2-3
4-3-2-1
1-2-3-4-5
6-5-4-3-2-1

насколько это говнокод от 0 до 10?

Запостил: pistael pistael, (Updated )

Комментарии (28) RSS

  • > насколько это говнокод от 0 до 10?
    √-1

    1) Нахрена тебе <string> здесь?
    2) Почитай про функции и разбей свой код, чтобы он не был одной портянкой. Хотя бы функцию печати выдели.
    3) Кручу-верчу, запутать хочу. Если не прослеживать выполнение кода, непонятно нахрена тут два разворота вектора. Ну и операция эта недешёва.
    4) Почитай про итераторы, и адаптеры итераторов (хотя сейчас лучше сразу читать про рейнджи), конкретно про reverse_iterator.
    5) По поводу вывода: привыкай работать итераторами или рейнджами и range-based-for, а не индексами. Каконично также выводить разделитель перед каждым элементом, кроме первого, а не после каждого, кроме последнего.
    Ответить
    • Нахуя ему итераторами и рейнджами сейчас мозг забивать? Чел учится программировать.
      Ответить
      • Когда берёшь в руки молоток, все проблемы становятся похожи на гвозди.
        Ответить
        • Совершенно верно.

          Учить программировать на С++ новичка это как учить арифметике в школе посредством mathcad
          Ответить
    • нахуй реверсить вектор, достаточно взять обратный итератор
      Ответить
  • Лучше не используй вектор.
    В цикле смотри чётность итерации: в зависимости от этого делай цикл от 1 до i, либо от i до 1 и распечатывай.
    Ответить
  • #include <iostream>
    #include <string>
    
    using namespace std; // простите за это)
    
    int main()
    {
        const int DEPTH = 6;
        for (int i{1}; i <= DEPTH; ++i)
        {
            if (i % 2 == 1)
                for (int j{1}; j <= i; ++j)
                    cout << j << ((j != i) ? "-" : "");
            else
                for (int j{i}; j >= 1; --j)
                     cout << j << ((j != 1) ? "-" : "");
            cout << '\n';
        }
        return 0;
    }


    Ну и строки-разделители можно на символы заменить.
    Ответить
    • Ко всем комментаторам --- зачем тут вектора? Задача на циклы, задача банальнейшая.
      Ответить
      • Снимаю шляпу!

        Но тернарный оператор без форматирования выглядит противно.
        Ответить
      • #include <stdio.h>
        #define A long
        #define B 2
        #define C >>
        #define D <
        #define E <
        #define F -
        #ifdef __clang__
        #define CLANG (B C (B C (B C (B C 1))))
        #else
        #define CLANG 0
        #endif
        int main(void)
        {
            for (A i = B C (B C 1); i <=
                            ((A)main F
                           (A)printf) / 
                             (B * B 
                             * B * 
                             B F (B C 
                             (B C 1) + CLANG)); 
                    i = F~i)         for (A j = 
                    B C (B C 1);     j <= i; j = F~j)    
                    printf("%d%c",   i % B ? j : i    
                    F j F- (B C (B   C 1)), "-\n"       
                    [!!(i ^ j) ^(B   C (B C 1))]);
            return 0;
        }

        https://godbolt.org/z/TbMs7YbEr
        Ответить
    • >j{1}
      прелесть какая ))

      чисто шоб сишник не понял
      Ответить
  • console.log(Array.from({length: 6}, (_, i) => Array.from({length: i + 1}, (_, j) => i + 1 - j).join('-')).join('\n'))
    Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8