#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int N,a[4];
cin>>N;
do{
a[2]=N%10;
a[3]=N/10%10;
a[0]=N/100%10;
a[1]=N/1000;
int big,small;
sort(a,a+4);
big=a[3]*1000+a[2]*100+a[1]*10+a[0];
small=a[0]*1000+a[1]*100+a[2]*10+a[3];
printf("%04d - %04d = %04d\n",big,small,big-small);
N=big-small;
}while(N&&N!=6174);
}
该程序读取一个四位数N,重新排列其数字以形成最大值和最小值,然后计算它们的差值。这个过程会一直重复,直到得到6174或数字不再变化。它使用了标准库中的排序算法,并涉及到了整数的位操作。

被折叠的 条评论
为什么被折叠?



