取出一个十进制正整数所有的偶数数字,用这些数字拼成一个最大整数max,取出这个十进制正整数中的所有奇数数字,用这些数字拼成一个最小整数min,输出max和min的差。
【样例输入】
74958106
【样例输出】
7061
//样例说明 max为8640,min为1579,差为7061
#include <stdio.h>
#include <stdlib.h>
int main(){
int n,a[100000],i=0,m,j,k,temp,max=0,min=0;
scanf("%d",&n);
while(n!=0){
a[i]=n%10;
n/=10;
i++;
}
m=i-1;
for(i=0;i<m;i++){
for(j=0;j<m-i;j++){
if(a[j]<a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
} //冒泡排序,以样例为例,排序后为98765410
k=1;
for(i=0;i<=m;i++){
if(a[i]%2!=0) { //判断为奇数
min+=a[i]*k;
k*=10;
}
}
k=1;
for(i=m;i>=0;i--){
if(a[i]%2==0){ //判断为偶数
max+=a[i]*k;
k*=10;
}
}
printf("%d",max-min); //输出结果
return 0;
}