基本思想:他让你做什么你就做什么
坑点,测试点:6174这个输入应该有输出7641-1467=6174…
#include <bits/stdc++.h>
using namespace std;
int get(int n,int &a,int &b)
{
int num[4];
num[0]=n/1000;
num[1]=(n%1000)/100;
num[2]=(n%100)/10;
num[3]=n%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];
}
int main(void)
{
int n,a=0,b=0,res=0;
scanf("%d",&n);
//用来处理6174这个奇葩数据
get(n,a,b);
printf("%04d - %04d = %04d\n",a,b,a-b);
n=a-b;
while(n!=res)
{
get(n,a,b);
if(a-b!=n)
printf("%04d - %04d = %04d\n",a,b,a-b);
res=n;
n=a-b;
}
}