c++ - 编写 C++ 程序以使用 ITERATION 查找数字的倒数
问题描述
我不知道如何将此递归代码更改为迭代,有什么帮助吗?
我应该开始另一个还是我应该能够改变这个?
int reverseNumber(int num);
int main()
{
int num, reverse;
// Inputting number from user
cout<<"Enter any number: ";
cin>>num;
// Calling function to reverse any number
reverse = reverseNumber(num);
cout<<"Reverse of number "<<num <<" is: "<<reverse;
return 0;
}
int reverseNumber(int num)
{
// Find total digits in num
int digit = (int) log10(num);
// Base condition
if(num == 0)
return 0;
return ((num%10 * pow(10, digit)) + reverseNumber(num/10));
}
解决方案
您只需要获取该号码的最后一位并将其添加到另一个号码即可。您可以从代码中更好地理解它。
int iterativeReverse(int num) {
int revesedNum = 0;
while(num != 0) {
int lastDigit = num % 10;
reversedNum = reversedNum * 10 + lastDigit;
num /= 10;
}
return reversedNum;
}
推荐阅读
- sql - 将 SAS 读入文件转换为 SQL
- angular - 在 Angular 应用程序和 Firebase 集成中出现时间戳错误
- sql - 如何获取行值以与 SQL Server 中的列进行映射
- javascript - 悬停在元素上时的文件信息
- arkit - ARKit 估计垂直平面命中测试获取平面旋转
- angularjs - 否则redirectTo不起作用
- c - Arch Arm 的交叉编译不会产生功能性可执行文件
- wpf - 使用 mvvm 减少多个窗口
- c++ - 这是当前草案中 [expr.ref]/(4.2) 和 [expr.sub]/1 之间的矛盾吗?
- javascript - 我的按钮中的事件监听器无法正常工作,该函数在单击事件之外正常运行,但是当我单击按钮时它不起作用