如何在C++;? 我需要在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; } }

如何在C++;? 我需要在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; } },c++,recursion,C++,Recursion,这是我到目前为止的代码,但我肯定搞砸了。我甚至没有使用复发 这里有一种方法可以解决这个问题 在每次迭代中,您都要检查最后两位数字是否有序。当数字为一位数时,返回true bool ascending(int n) { int last_digit = n % 10; int remainder = n / 10; if (remainder == 0) { return true; } int second_last_digit

这是我到目前为止的代码,但我肯定搞砸了。我甚至没有使用复发

这里有一种方法可以解决这个问题

在每次迭代中,您都要检查最后两位数字是否有序。当数字为一位数时,返回
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
    }
}
bool升序(int n){
最后一位整数=n%10;
整数余数=n/10;
如果(余数==0)
{
返回true;
}
整数第二位最后一位=余数%10;
if(最后一位<第二位最后一位)
{
返回false;
}
其他的
{
返回升序(余数);//递归调用
}
}

请在此处共享您的代码,然后我们可以以简单的方式帮助您递归是指用一个更简单的问题来指定一个问题。在您的例子中,更简单的问题可能是少一个数字的数字。因此,请考虑如何以这种方式指定问题。第二个返回不应该是真的吗?因为这不是说如果最后一个数字小于倒数第二个,那就是假的吗?但是这不就是下降而不是上升吗?上面的例子是从最后一个数字开始的,所以我们希望最后一个数字大于第二个最后一个数字,使整个数字按升序排列哦,伙计,我完全错了,你是对的。非常感谢。短版本:
return!值| |(值%10>=value/10%10?为升序(值/10):false)