您的位置:首页 > 其它

Pat 1069(同basic level里的1019)

2015-02-17 09:36 155 查看
#include<stdio.h>

int main()
{
int a[4], n, b[4] = { 0, 0, 0, 0 }, i, j, temp;
scanf("%d", &n);
a[0] = n / 1000;
a[1] = (n - a[0] * 1000) / 100;
a[2] = (n - a[0] * 1000 - a[1] * 100) / 10;
a[3] = n % 10;
if (a[0] == a[1] && a[0] == a[2] && a[0] == a[3]) printf("%d - %d = 0000\n", n, n);
else if (n == 6174) printf("7641 - 1467 = 6174\n");
else {
while (n != 6174)
{
for (i = 0; i<4; i++)
b[i] = a[i];
for (i = 0; i<4; i++)
for (j = i + 1; j<4; j++)
if (a[i]<a[j]){
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
for (i = 0; i<4; i++)
for (j = i + 1; j<4; j++)
if (b[i]>b[j])
{
temp = b[i];
b[i] = b[j];
b[j] = temp;
}
n = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3] - (b[0] * 1000 + b[1] * 100 + b[2] * 10 + b[3]);
printf("%d%d%d%d - %d%d%d%d = ", a[0], a[1], a[2], a[3], b[0], b[1], b[2], b[3]);
a[0] = n / 1000;
a[1] = (n - a[0] * 1000) / 100;
a[2] = (n - a[0] * 1000 - a[1] * 100) / 10;
a[3] = n % 10;
printf("%d%d%d%d\n", a[0], a[1], a[2], a[3]);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: