c++ - C++ 使用递归打印反转整数
问题描述
我试图在不使用循环的情况下反转 c++ 上的整数。我认为我在这里有正确的想法,但它没有按我的意愿工作。如果有人能告诉我这里看起来有什么问题,将不胜感激
void reverse(int y){ //base
int a = y % 10;
int length = to_string(y).length();
cout << length << endl;//gets length of number
cout << reversed << endl;
reversed += a * (10 ^ (length - 1)); // add to reversed
y = y / 10;
if (y == 0){
cout << reversed << endl;
exit (0);
}
else { //recursive
reverse (y);
}
}
解决方案
正如其他人指出的那样 ^ 不是幂运算符。例如使用 pow() 。
这应该适合你:
#include <iostream>
#include <cmath>
using namespace std;
int reversed;
void reverse(int y){ //base
int a = y % 10;
reversed += a * pow(10, to_string(y).length()-1); // add to reversed
y = y / 10;
//Condition, digit must be 1 number
if (y >= 10){
cout << reversed << endl;
reverse(y);
} else {
cout << reversed << endl;
reversed += y;
cout << reversed << endl;
}
}
int main() {
reverse(123456);
return 0;
}
输出:
600000
650000
654000
654300
654320
654321
推荐阅读
- reactjs - React/Redux 存储(包装器映射框)内的可变对象?
- javascript - 反应:_this.state 未定义
- angular - 以角度 6 去抖动整个形式
- php - Woo-commerce 产品父类别然后显示子类别,然后显示与子类别相关的产品
- postgresql - 如何检查连接从哪里到达 AWS RDS Postgres t2 微实例?
- selenium-firefoxdriver - 使用 firefox 59.0.3(64 位)gecko 驱动程序 0.15 执行 seleium 脚本时出现 UnsupportedCommandException
- symfony - Symfony 3.4:找不到Assetic 404
- angularjs - AngularJS 和 Flask-Socketio 的 Access-Control-Allow-Origin 错误
- javascript - jQuery OwlCarousel v1.3.3 - 居中对齐项目
- tensorflow - 在本地使用 Tensorflow 对象检测 API 时出现 Protobuf 错误