语言:C++,题目描述 有两个纯粹由数字组成的字符串s1,s2,将s1串中的数字进行从大到小排列,s2串中的数字从小到大排列,求排列后s1-s2的值(s1转换为数字时大于0) 输入 输入2行数字字符串数据,分别代表s1,s2; 如: 213 21 (排列后 s1的值是321 ; s2的值是12 ;) 输出 s1-s2的值 如: 309 (根据上面输入的示例,计算结果为321-12=309)
时间: 2023-06-24 18:04:55 浏览: 127
基于C++的数值转换
以下是 C++ 代码实现:
```cpp
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main() {
string s1, s2;
cin >> s1 >> s2;
sort(s1.begin(), s1.end(), greater<char>()); // 从大到小排序
sort(s2.begin(), s2.end()); // 从小到大排序
int num1 = stoi(s1), num2 = stoi(s2); // 将字符串转换为数字
cout << num1 - num2 << endl; // 输出差值
return 0;
}
```
解题思路:
首先输入两个数字字符串s1和s2,将s1中的数字从大到小排列,s2中的数字从小到大排列,将排列后的s1和s2分别转换为数字num1和num2,然后计算num1-num2的值并输出即可。
其中,sort函数可以用于排序,greater<char>()表示按字符从大到小排序,而stoi函数可以将字符串转换为数字。
阅读全文