PAT a1069题解

来源:互联网 发布:网络书籍排行 编辑:程序博客网 时间:2024/06/02 03:27
#include <cstdio>#include <algorithm>using namespace std;int numAsc(int num){int qian = num / 1000;int bai = num / 100 % 10;int shi = num / 10 % 10;int ge = num % 10;int a[5];a[0] = qian;a[1] = bai;a[2] = shi;a[3] = ge;sort(a, a + 4);return a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];}bool cmp(int a, int b){return a > b;}int numDesc(int num){int qian = num / 1000;int bai = num / 100 % 10;int shi = num / 10 % 10;int ge = num % 10;int a[5];a[0] = qian;a[1] = bai;a[2] = shi;a[3] = ge;sort(a, a + 4, cmp);return a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];}int main(){int n;scanf("%d", &n);int result;if(numDesc(n) == numAsc(n)){printf("%04d - %04d = %04d\n", n, n, 0000);}else{while(result != 6174){result = numDesc(n) - numAsc(n);printf("%04d - %04d = %04d\n", numDesc(n), numAsc(n), result);n = result;}}return 0;}

原创粉丝点击