
#include<cstdio> #include<algorithm> using namespace std; bool cmp(int a,int b){ return a>b; } void to_array(int n,int num[]){ for(int i=0;i<4;i++){ num[i]=n%10; n/=10; } } int to_number(int num[]){ int sum=0; for(int i=0;i<4;i++){ sum=sum*10+num[i]; } return sum; } int main(){ int n,MIN,MAX; scanf("%d",&n); int num[5]; while(1){ to_array(n,num); sort(num,num+4); MIN=to_number(num); sort(num,num+4,cmp); MAX=to_number(num); n=MAX-MIN; printf("%04d-%04d=%04d\n",MAX,MIN,num) if(n==0||n==6174) break; } return 0; }
该代码片段展示了如何将一个整数转换为数组,对其进行排序以找到最大和最小值,然后计算它们之间的差值。这个过程用于生成4位数的拉马努金数,直到达到特定条件为止。
2046

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



