把输入的数字作为字符串,调用排序算法,求最大最小
输入的数字的范围是(0, 104), 如果作为字符串处理时要注意前面补0
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
bool cmp(char a, char b){
return a>b;
}
int main(){
int n;
scanf("%d", &n);
char a[5];
sprintf(a, "%04d", n);
int max, min;
sort(a, a+4, cmp);
sscanf(a, "%d", &max);
sort(a, a+4);
sscanf(a, "%d", &min);
if(max == min){
printf("%04d - %04d = 0000", max, min);
}else{
int value = max - min;
while(value != 6174){
printf("%04d - %04d = %04d\n", max, min, value);
sprintf(a, "%04d", value);
sort(a, a+4, cmp);
sscanf(a, "%d", &max);
sort(a, a+4);
sscanf(a, "%d", &min);
value = max - min;
}
printf("%04d - %04d = %04d", max, min, value);
}
return 0;
}
1069 The Black Hole of Numbers (20分)
原文:https://www.cnblogs.com/d-i-p/p/12353952.html