您的位置:首页 > 其它

1069. The Black Hole of Numbers (20)解题报告

2016-11-04 10:30 337 查看
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;

void convert(int n, int arr[]);
void reverse(int &n, int arr[]);
bool comp(int i1, int i2);

int main(void) {
int num1, num2 = -1, num3 = -1;
int arr[6];
scanf("%d", &num1);
while (num3 != 6174 && num3) {
convert(num1, arr);
sort(arr, arr + 4, comp);
reverse(num1, arr);
sort(arr, arr + 4);
reverse(num2, arr);
num3 = num1 - num2;
printf("%04d - %04d = %04d\n", num1, num2, num3);
num1 = num3;
}
return 0;
}
void convert(int n, int arr[]) {
int i;
for (i = 0; i < 4; i++) {
arr[i] = n % 10;
n /= 10;
}
return;
}
void reverse(int &n, int arr[]) {
int i, result = 0;
for (i = 0; i < 4; i++) {
result = result * 10 + arr[i];
}
n = result;
return;
}
bool comp(int i1, int i2) {
return i1 > i2;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: