问题描述
**例如 123== 312 如何在不使用if语句的情况下移动C++中第一个位置的最后一位
#include <iostream>
using namespace std;
int main(){
int n=123;
while(n!=0){
}
cout<<n;//==312
}
解决方法
你可以这样做
- 获取最后一位数字和其他数字
- 找出与其他数字相邻的数字的位置
- 把最后一个数字放在那里
#include <iostream>
int moveDigit(int n) {
int res = n / 10;
int delta = 1;
while (delta <= res) delta *= 10;
return (n % 10) * delta + res;
}
int main(){
int n=123;
n = moveDigit(n);
std::cout<<n;//==312
}
内联函数:
#include <iostream>
int main(){
int n=123;
int res = n / 10;
int delta = 1;
while (delta <= res) delta *= 10;
n = (n % 10) * delta + res;
std::cout<<n;//==312
}
,
我可能会因此而讨厌
#include <string>
#include <utility>
int main() {
int n =123;
std::string n_s{std::to_string(n)};
std::swap(n_s.front(),n_s.back());
n=std::stoi(n_s);
}