#include<cstdio>
#include<iostream>
#include<string>
#include<string.h>
#include<algorithm>
#include<queue>
#include<map>
#include<set>
using namespace std;
void intoarray(int n,int num[])
{
for(int i=0;i<4;i++)
{
num[i]=n%10;
n=n/10;
}
}
int atoin(int num[])
{
int sum=0;
for(int i=0;i<4;i++)
{
sum=num[i]+sum*10;
}
return sum;
}
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
//freopen("input.txt","r",stdin);
int n;
cin>>n;
int num[5];
while(1)
{
intoarray(n,num);
sort(num,num+4);
int min=atoin(num);
sort(num,num+4,cmp);
int max=atoin(num);
n=max-min;
printf("%04d - %04d = %04d\n",max,min,n);
if(n==0||n==6174)
break;
}
//freopen("con","r",stdin);
system("pause");
return 0;
}PAT 1069
最新推荐文章于 2021-02-01 16:00:01 发布
本文介绍了一个有趣的数字游戏算法实现——通过不断重排数字并计算最大数与最小数之差来求得6174这个神奇数字。文章详细展示了如何使用C++编程语言实现该算法,包括将整数分解为数组、排序、重新组合成新的整数等关键步骤。
147

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



