微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在不使用if语句的情况下移动C++中第一个位置的最后一位数字

如何解决如何在不使用if语句的情况下移动C++中第一个位置的最后一位数字

**例如 123== 312 如何在不使用if语句的情况下移动C++中第一个位置的最后一位

    #include <iostream>
    using namespace std;
    int main(){
        int n=123;
        
        while(n!=0){
          
        }
        cout<<n;//==312
    }

解决方法

你可以这样做

  1. 获取最后一位数字和其他数字
  2. 找出与其他数字相邻的数字的位置
  3. 把最后一个数字放在那里
#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 举报,一经查实,本站将立刻删除。