我需要在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;
}
}
这是我到目前为止的代码,但是我肯定搞砸了。我什至不使用递归。
答案 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
}
}