输入一个三位数的正整数,将数字位置重新排列,组成一个尽可小的三位数。
时间: 2023-05-16 17:04:57 浏览: 64
可以使用以下代码实现:
```
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int num;
cin >> num;
string str = to_string(num);
sort(str.begin(), str.end());
int res = stoi(str);
cout << res << endl;
return 0;
}
```
这段代码将输入的三位数转换成字符串,然后使用 `sort` 函数将字符串中的数字按照从小到大的顺序排列,最后再将排列好的字符串转换成整数输出。
相关问题
输入一个三位数的正整数,将数字位置重新排列,组成一个尽可大的三位数
假设输入的三位数为ABC,要求将数字位置重新排列,组成一个尽可大的三位数。方法如下:
1. 从输入的三位数中找出最大的数,将其放在百位上。例如,如果C是输入的三个数中最大的,就将C放在百位上。
2. 接下来要在AB中选出一个次大的数。如果A比B大,就将A放在十位上;否则将B放在十位上。
3. 最后,剩下的数放在个位上。
按照这个方法排列出来的三位数就是所求的尽可大的三位数。
用c语言编写输入一个三位数的正整数,将数字位置重新排列,组成一个尽可小的三位数。
可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
int num, a, b, c, min;
printf("请输入一个三位数的正整数:");
scanf("%d", &num);
a = num / 100;
b = num / 10 % 10;
c = num % 10;
if (a <= b && a <= c) {
min = a;
if (b <= c) {
printf("重新排列后的最小三位数为:%d%d%d\n", a, b, c);
} else {
printf("重新排列后的最小三位数为:%d%d%d\n", a, c, b);
}
} else if (b <= a && b <= c) {
min = b;
if (a <= c) {
printf("重新排列后的最小三位数为:%d%d%d\n", b, a, c);
} else {
printf("重新排列后的最小三位数为:%d%d%d\n", b, c, a);
}
} else {
min = c;
if (a <= b) {
printf("重新排列后的最小三位数为:%d%d%d\n", c, a, b);
} else {
printf("重新排列后的最小三位数为:%d%d%d\n", c, b, a);
}
}
return 0;
}
```
输入一个三位数的正整数后,程序会将其拆分为三个数字,然后按照从小到大的顺序重新排列,最后输出组成的最小三位数。例如,输入 321,程序会输出 123。