2014-11-30 3 views
-3

Мы нашли этот метод в книге.Можете ли вы объяснить мне, что делает этот метод?

Из чего я понимаю, хочет проверить, упорядочено ли число по возрастанию.

Например, число 54321 (все цифры распорядились по возрастанию)

Однако, я не понимаю, как этот метод работает ... почему возвращает 0 или 1?

Можете ли вы объяснить мне простым способом, что происходит в этом методе?

static int f(long n) 
    { 
     while(n>10) 
     { 
      if (n % 10 > n/10 % 10) return 0; 
      n = n/10; 


     } 
     return 1; 
    } 
+2

Подсказка: что означает значение 'n% 10'? Что представляет значение 'n/10% 10'? Что представляет значение 'n/10'? (BTW, в номере 54321, цифры опускаются, а не возрастают). – hvd

+0

Почему бы вам не попробовать и посмотреть? –

+2

Тем не менее, интересно, что причина автора в том, что он не возвращал логическое значение – dcastro

ответ

3

n % 10 получает вас цифру в месте устройства и n/10 % 10 получает вас цифра в десятника месте.

Автор сравнивает эти две цифры и возвращает 0, если цифра в месте устройства больше, чем цифра в десяти местах.

Если нет, он делит n на 10, чтобы отменить номер в месте устройства. Теперь число, которое находилось на месте десяти, теперь находится на месте, и тот, который находится на сто месте, теперь находится на десять мест, и предыдущие шаги повторяются.

Если число будет меньше или равно 10 после того, как вы продолжаете отбрасывать последний номер, если он не вернулся 0, он вернет 1, что предполагает, что все цифры в n находятся в порядке убывания слева направо правильно.

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