#include<cstdio>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{
return a>b;
}
void toarray(int n,int num[])//将n的每一位存到num数组中
{
for(int i=0;i<3;i++)
{
num[i]=n%10;
n=n/10;
}
}
int tonum(int num[])//将数组转为数字
{
int sum=0;
for(int i=0;i<3;i++)
{
sum=sum*10+num[i];
}
return sum;
}
int main()
{
int n,max,min;
int num[4];
int count=1;
scanf("%d",&n);
while(1)
{
toarray(n,num);//将n转换成数组
sort(num,num+3);//对数组进行从小到大排序
min=tonum(num);
sort(num,num+3,cmp);//对数组进行从大到小排序
max=tonum(num);
n=max-min;
printf("%d : %d - %d = %d\n", count++, max, min, n);
if(n==0||n==495)break;
}
return 0;
}
此题类似于PAT中B1019或A1069
m n x j 发布了57 篇原创文章 · 获赞 0 · 访问量 419 私信 关注