/*--------6174问题----------- 输入一个n位数,把所有数字从大到小排序得到a,从小到大得到b,然后用a-b替换原来这个数 并且继续操作。1234 、4321-1234=3087、8730-378=8352、8532-2358=6174 样例输入:1234 样例输出:1234->3087->8352->6074->6174 --------------------------------------------------*/ #include<iostream> using namespace std; int w[4]; void paixv(int *a) {int i,m,b; for(i=0;i<3;i++) for(m=0;m<3-i;m++) if(a[m]>a[m+1]) {b=a[m]; a[m]=a[m+1]; a[m+1]=b;} } void shuzi(int a) {for(int i=0;i<4;i++) {w[i]=a%10; a=a/10;} } int main() {int a,m,n,q; cin>>a; cout<<a; while(1) {n=a; shuzi(a); paixv(w); m=w[3]*1000+w[2]*100+w[1]*10+w[0]; q=w[0]*1000+w[1]*100+w[2]*10+w[3]; a=m-q; if(a==n) break; else cout<<"->"<<a; } return 0; }