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

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
xxx: Теперь сделайте так, чтобы цифры выводились следующим образом (используя программу из предыдущего задания):
            1
         2 1
      3 2 1
   4 3 2 1
5 4 3 2 1

yyy:

#include <print>

inline constexpr std::size_t kSize = 5;

template <std::size_t N, std::size_t NN>
constexpr auto operator+(const std::array<char, N>& first, const std::array<char, NN>& second) -> std::array<char, N + NN> {
  std::array<char, N + NN> response;  // NOLINT
  std::ranges::copy(first, response.begin());
  std::ranges::copy(second, response.begin() + first.size());
  return response;
};

auto main() -> int {
  []<std::size_t... Is>(std::index_sequence<Is...>) {
    // clang-format off
    ([&]<std::size_t... IIs, std::size_t... IIIs>(std::index_sequence<IIs...>, std::index_sequence<IIIs...>) {
      constexpr std::format_string<decltype(IIs)...> fmt = [] {
        static constexpr auto response = ((std::ignore = IIIs, std::array{' ', ' '}) + ... + ((std::ignore = IIs, std::array{'{', '}', ' '}) + ... + std::array{'\0'}));
        return response.begin();
      }();
      constexpr auto v = Is;
      std::println(fmt, (v - IIs + 1)...);
    }(std::make_index_sequence<Is + 1>(), std::make_index_sequence<kSize - Is - 1>()), ...);
    // clang-format on
  }(std::make_index_sequence<kSize>());
};

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

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

  • Лямбда в лямбде? Программист, вероятно, раньше на Лиспе писал.
    Ответить

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

Переведи на "PHP", guest!

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


    8