2012-01-07 2 views
-1

Мне нужно установить переменную int в каждой итерации + -1, диапазон должен быть между 0-10. Когда я добавляю от 1 до 10 -> 0, когда добавляю -1 к 0 -> 10. Я знаю, что мне нужно идти с модулем здесь, но не могу найти какое-либо решение.Определить диапазон значений

+0

Вы пробовали что-нибудь? – talnicolas

+0

Показать код, который вы пробовали. Это очень важно, если вы хотите помочь. Обычно я на работе, когда я отвечаю на вопросы, и у меня нет времени тратить время на то, что кто-то, возможно, попробовал. Поэтому я гораздо чаще отвечаю на вопросы, у которых есть код с ними. Кроме того, я думаю, что те, кто отвечает на вопросы, оценивают усилия, предпринимаемые человеком, спрашивающим - единственный способ добиться успеха - сначала попытаться понять вещи. – Paul

ответ

0

Это кажется легким, но если вы действительно хотите использовать modulo, попробовали ли вы;

x = (x + y) % 11; 
    if (x < 0) x += 11; 

или «конечной удобочитаемость» и, вероятно, еще более высокую производительность только

x = x + y; 
    if (x < 0) x += 11; 
    if (x > 11) x -= 11; 

Пожалуйста, обратите внимание, что требования запирает у вниз, чтобы быть -1 или 1.

+0

'(0 + -1)% 11' находится за пределами допустимого диапазона – amit

+0

Я был здесь: (x + (11 + y))% 11 есть ли более простой способ? – Starfighter911

+0

Я пропустил диапазон y от -1 до 1, ваш путь действительно сработает, даже если немного трудно читать. –

Смежные вопросы