如何在C ++中制作升序函数?

时间:2018-11-14 05:00:05

标签: c++ recursion

我需要在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 :(得分:1)

这是解决问题的一种方法。

在每次迭代中,请检查后两位是否正确。当数字是个位数时,返回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
    }
}