Задача :
Вивести (на екран, в файл, ще кудись - не важливо) всі числа від 0 до 7 включно в довільній послідовності не використовуючи арифметичних операцій. Кожне число має бути виведено рівно 1 раз.
Умови :
Заборонено використовувати :
- арифметичні операції +, -, *, /, %, +=, -=, *=, /=, %=, ++, --;
- функції sum, add, div, mod, accumulate, і інші арифметичні чи статистичні функції;
- функції log, log2, pow, sin, cos, і інші аналітичні функції;
- умовні оператори if, else, switch, case, ?:, ??;
- оператори переходу goto;
- стрічки String, char*, wchar_t*, "str", 'str' (крім випадків, коли виконується приведення типів для виводу числа на екран, або коли застосовується стрічка форматування, наприклад "%i");
- стандартну функцію виводу 2 або більше разів в коді;
- константи і змінні, які займають більше ніж 8 біт (роз'яснення: ви можете використовувати і 16- і 32- бітні типи, але їхні значення повинні вміщатися в 8 біт);
- масиви, кортежі, вектори, послідовності, колекції, списки, стеки і інші контейнери даних;
Дозволено використовувати :
- бітові операції &, ^, |, &=, ^=, |=, &&, ||, ;
- операції зсуву <<, >>, <<=, >>=, >>>;
- присвоєння =, :=;
- порівняння ==, ===, !=, !==, >, <, >=, <=;
- стандартні бітові функції AND, XOR, OR, NOR, ... якщо такі надаються мовою програмування;
- цикли while, do while, for, until, але тільки 1 цикл і 1 раз;
- стрічки форматування виводу "%g", "{0}";
- стандартну функцію виводу 1 раз в коді (в циклі);
- константи і змінні, які займають до 8 біт включно;
- будь-яку мову програмування;
Приклади виводу :
Можна так :
або так :
010
111
011
110
101
000
001
100
upd: змінних і констант разом має бути не більше ніж 5.