1019 数字黑洞 (20 分)

1019 数字黑洞 (20 分)

输入样例 1:

6767

输出样例 1:

7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174

输入样例 2:

2222

输出样例 2:

2222 - 2222 = 0000

代码

#include<stdio.h>
#include <algorithm>
using namespace std;
bool cmp(int a,int b){
	return a>b;
}
int main(){
	int n;
	scanf("%d",&n);
	int a[5],b[5],a1=0,b1=0;
	while(1){
		for(int i=0;i<4;i++){
			a[i]=n%10;
			b[i]=n%10;
			n=n/10;
		}
		sort(a,a+4,cmp);
		sort(b,b+4);
		a1=a[0]*1000+a[1]*100+a[2]*10+a[3];
		b1=b[0]*1000+b[1]*100+b[2]*10+b[3];
		n=a1-b1;
		printf("%04d - %04d = %04d\n",a1,b1,n);
		if(n==0) break;
		if(n==6174) break;
	}
	return 0;
}