B1019/A1069數字黑洞

#include<stdio.h>
#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_num(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_num(num);
		sort(num,num+4,cmp);//從大到小排序 
		max=to_num(num);
		n=max-min;
		printf("%04d-%04d=%04d\n",max,min,n);
		if(n==0||n==6174)break;
	}
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章