您的位置:首页 > 其它

1069.The Black Hole of Numbers (20)

2017-01-27 20:59 399 查看
1069.The Black Hole of Numbers (20)

pat-al-1069

2017-01-27

乙级就写过这题,这次再写就优化了一下

排序直接使用了sort

使用sprintf和sscanf进行字符串和数字之间的转换

坑见注释

/**
* pat-al-1069
* 2017-01-27
* Cpp version
* Auhtor: fengLian_s
*/
#include<iostream>
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
bool cmp1(char a, char b)
{
return a > b;
}
bool cmp2(char a, char b)
{
return a < b;
}
int main()
{
int n;
scanf("%d", &n);
char num[5];//坑:4的话会出错
sprintf(num, "%04d", n);//坑:注意格式控制
//printf("n = %d\n", n);
do {
int max, min;
sprintf(num, "%04d", n);
//printf("n = %d\n", n);
if(num[0] == num[1] && num[0] == num[2] && num[0] == num[3])
{
printf("%d - %d = 0000\n", n, n);
return 0;
}
sort(num, num+4, cmp1);
//printf("num = %s\n", num);
sscanf(num, "%d", &max);
//cout << "max = " << max << endl;
sort(num, num+4, cmp2);
sscanf(num, "%d", &min);
//cout << "min = " << min << endl;
n = max - min;
printf("%04d - %04d = %04d\n", max, min, n);
} while(n != 6174);
}


-FIN-
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: