一个函数求重排后最大值,一个函数求重拍后最小值 ,当差值为495时退出循环,最后再输出一次。
#include
using namespace std;
int MAX(int n) { int t; int a,b,c; a=n/100; b=n/10%10; c=n%10; if(a<b) { t=a; a=b; b=t; } if(a<c) { t=a; a=c; c=t; } if(b<c) { t=b; b=c; c=t; } return a100+b10+c;
} int MIN(int n) { int t; int a,b,c; a=n/100; b=n/10%10; c=n%10; if(a<b) { t=a; a=b; b=t; } if(a<c) { t=a; a=c; c=t; } if(b<c) { t=b; b=c; c=t; } return c100+b10+a;
}
int main() { int N; int i=1; int max,min; int res; scanf("%d",&N);
max=MAX(N);
min=MIN(N);
res=max-min;
while(res!=495) { printf("%d: %d - %d = %d\n",i,max,min,res); max=MAX(res); min=MIN(res); res=max-min; i++;
} printf("%d: %d - %d = %d\n",i,max,min,res);
return 0; }
|