
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int cmp(int a,int b)
{
return a>b;
}
int main()
{
int n;
scanf("%d",&n);
int p=n;
int q[10];
while(1)
{
memset(q,0,sizeof(q));
for(int i=0; i<4; i++)
{
q[i]=p%10;
p/=10;
}
sort(q,q+4,cmp);
int sum1=0;
int sum2=0;
for(int i=0; i<4; i++)
{
sum1=sum1*10+q[i];
}
sort(q,q+4);
for(int i=0; i<4; i++)
{
sum2=sum2*10+q[i];
}
p=sum1-sum2;
printf("%04d - %04d = %04d\n",sum1,sum2,p);
if(p==0||p==6174) break;
}
}
该程序实现了一个寻找特定整数序列变化到6174(卡普雷卡尔常数)的过程。它首先读取一个整数n,然后不断对序列的四个数字进行排序,形成两个新的数字并相减,直到序列稳定或变为6174。这是一个涉及数字操作和排序的算法问题。
412

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



