问题描述
定义函数 如下:
- 将 的各位数字按照降序排序
- 将 的各位数字按照升序排序,忽略前导零
例如,, , 。
给出整数 , 定义数列 ,求 .
输入格式
输入一行包含两个整数 。
输出格式
输出一个整数表示
样例输入1
1024 2
样例输出1
8172
样例输入2
10 3
样例输出2
0
#include <bits/stdc++.h>
using namespace std;
int g1(int n) {
vector<int> v;
while (n > 0) {
v.push_back(n % 10);
n /= 10;
}
sort(v.begin(), v.end(), greater<int>());
int ans = 0;
for (auto i : v) {
ans = ans * 10 + i;
}
return ans;
}
int g2(int n) {
vector<int> v;
while (n > 0) {
v.push_back(n % 10);
n /= 10;
}
sort(v.begin(), v.end());
int ans = 0;
for (auto i : v) {
ans = ans * 10 + i;
}
return ans;
}
int f(int n) {
return g1(n) - g2(n);
}
int main() {
int n, k;
cin >> n >> k;
for (int i = 0; i < k; i++) {
n = f(n);
}
cout << n << endl;
return 0;
}