Как сделать восходящую функцию в C ++? - PullRequest
0 голосов
/ 14 ноября 2018

Мне нужно сделать простую функцию в c ++, которая будет сообщать, если введенное целое число имеет цифры, возрастающие слева направо. Например, 123 возрастает. Мы только начали изучать рекурсию, что я и должен использовать, но я в замешательстве. До сих пор я думал, что вы сохраняете последнюю цифру как темп, а затем сравниваете ее со следующей цифрой, но как вам это удастся?

bool ascending(int n) {
    int temp = n % 10;
    while (n / 10 > 0) {
        n = n / 10;
        if (temp > n % 10) {
            return false;
            break;
        }
        temp = n % 10;
    }
}

Это код, который у меня есть, но я определенно запутался. Я даже не использую рекурсию.

1 Ответ

0 голосов
/ 14 ноября 2018

Вот один из способов сделать это.

На каждой итерации вы проверяете, что последние 2 цифры в порядке.И когда число представляет собой одну цифру, вернуть true

bool ascending(int n) {
    int last_digit = n % 10;
    int remainder = n / 10;

    if (remainder == 0)
    {
        return true;
    }

    int second_last_digit = remainder % 10;
    if (last_digit < second_last_digit)
    {
        return false;
    }
    else
    {
        return ascending(remainder); // Recusrive call
    }
}
...