如何解决如何在不使用if语句的情况下移动C++中第一个位置的最后一位数字
**例如 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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。