C++完成zzj数小程序

问题描述:
对于一个数字n,进行一次操作,交换其相邻的两位,经过交换后得到的最大的数为zzj数

输入
给定一个数字n
数据范围: 10<=n<=1e8

输出
输出其zzj数

样例输入
19260817
样例输出
91260817


#include<iostream>
#include<string>
using namespace std;
void swap(char& c1, char& c2) {
    char c = c1;
    c1 = c2;
    c2 = c;
}
int main() {
    string s,tmpString;
    cin >> s;
    int max = atoi(s.c_str());
    int len = s.length();
    int tmp=0;
    for (int i = 0; i < len - 1; i++) {
        tmpString = s;
        swap(tmpString[i], tmpString[i + 1]);
        tmp =  atoi(tmpString.c_str());
        if (tmp > max) {
            max = tmp;
        }
          swap(tmpString[i], tmpString[i + 1]);
    }
    cout << max << endl;
}

img



    public static void main(String[] args) {
        int a = 19260817;
        String str = a+"";

        int len = str.length();
        char[] chars = str.toCharArray();
        int max = a;
        for (int i=1;i<len;i++){
          change(chars,i,i-1);
            int integer = new Integer(new String(chars));
            if(integer> max){
                max = integer;
            }
            change(chars,i,i-1);

        }
        System.out.println(max);
    }

    public static void change(char[] chars ,int i,int j){
        char ch ;
        ch = chars[i];
        chars[i] = chars[j];
        chars[j] = ch;
    }