Код: Выделить всё
0 0 0 0
0 0 0 1
0 0 0 2
...
9 9 9 8
9 9 9 9
0 0 0 0
< /code>
Все цифры - это не знаковые целых, от 0 до N.
Я ищу лучший способ увеличить счетчик. Максимальные цифры могут быть любым положительным целым числом. < /P>
Я написал простое решение (моя функция возвращает false, если счетчик счетчика): < /p>
constexpr size_t state_len = 4;
const size_t value_max = 9;
size_t state[state_len] = {0, 0, 0, 0};
// state array representing "bicycle lock" counter
// with digits from 0 to 9
bool inc_state() {
for (size_t digit_pos{}; digit_pos < state_len; ++digit_pos) {
if (state[digit_pos] != value_max) {
++state[digit_pos];
break;
}
else {
state[digit_pos] = 0;
if (digit_pos == state_len - 1) return false;
}
}
return true;
}
Может быть, есть известный алгоритм или некоторые уловки?
Подробнее здесь: https://stackoverflow.com/questions/795 ... ementation