求大神支招
磁力数四位数算出来不是6174
三位数只输出n1-n2=0
多谢多谢
#include<iostream>
using namespace std;
int getbits(int n)
{
int k=0;
for(;n>0;)
{ n=n/10;
k++;
}
return k;
}
void split(int a[],int n,int k)
{ for(int i=0;i<k;i++)
{ a[i]=n%10; n=n/10; }
}
void sortd(int a[],int k)
{ int t;
for(int i=0;i<k-1;i++)
for(int j=0;j<k-1-i;j++)
if(a[j]<a[j+1])
{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
}
void reverse(int a[],int k)
{ int t;
for(int i=0;i<=k/2;i++)
{ t=a[i]; a[i]=a[k-i-1]; a[k-i-1]=t; }
}
int combine(int a[],int k)
{ int num,i; num=0;
for(i=0;i<k;i++) num=num*10+a[i];
return num;
}
int main()
{ int oldn=-1,k,n,a[100],n1,n2;
cin>>n;
k=getbits(n);
while(oldn!=n)
{ oldn=n;
split(a,n,k);
sortd(a,k);
n1=combine(a,k);
reverse(a,k);
n2=combine(a,k);
n=n1-n2;
cout<<"n1-n2="<<n<<endl; }
while(1);
return 0;
}