Числа от «n» до нуля без сравнений
На «Хабре» интересную задачу увидел, требуется написать на Си программу, выводящую числа от «n» до нуля, не используя (скрыто или явно) операторы сравнения.
Мой вариант:
#include <stdlib.h>
#include <stdio.h>
void print(const int n) {
printf("%d\n", n - 1);
}
int main(int argc, char* argv[])
{
const int N = atoi(argv[argc - 1]);
void (*f[])(int) = {print, exit};
for (int n = -1;;n++) {
f[~n/~N](N - n);
}
}