Note
- int数组定义在while循环内,防止处理完四位数字后出现三位数,int数组的内容不改变导致结果出错!
Code:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
if(n==6174){
printf("7641 - 1467 = 6174");
}
while(n!=6174){
int tmp=n,i=0,a,b;
int num[4]={0};
while(tmp>0){
num[i]=tmp%10;
i++;
tmp/=10;
}
sort(num,num+4);
a=num[3]*1000+num[2]*100+num[1]*10+num[0];
b=num[0]*1000+num[1]*100+num[2]*10+num[3];
if(a==b){
printf("%04d - %04d = 0000",a,b);
break;
}
else{
n=a-b;
printf("%04d - %04d = %04d\n",a,b,n);
}
}
return 0;
}