目标:
程序输入的一个小于1000且三个数字不全相等的整数,请你输出进入黑洞的重排求差过程。495是一个很神奇的数,被称为黑洞数或者陷阱数。
提示:
给定任何一个小于1000的正整数,经前位补0后可以得到一个三位数(两位数前面补1个0,一位数前面补2个0)。如果这个三位数的三个数字不全相等,那么经有限次“重排求差”操作(组成该数的数字重排后的最大数减去重排后的最小数),总会得到495。
例如,对整数80,前位补0后得到080,重排后可以得到800,008。此时可以得到的最大数为800,最小数为008(即8)。那么只需要4次重排求差即可得到495,过程如下:
1:800-8=792 //第一次
2:972-279=693 //第二次,将第一次的结果进行重排求差
3:963-369=594 //第三次,将第二次的结果进行重排求差
4:954-459=495 //第四次以此类推
程序实现:
详细输出:
#include <stdio.h>
int main()
{
int n;
printf("请输入一个三位数:\n");
scanf("%d",&n);
int a[3],b[6];
int s=1,max,min;
do{
a[0]=n%10;n=n/10;
a[1]=n%10;n=n/10;
a[2]=n;
b[0]=a[0]+a[1]*10+a[2]*100;
b[1]=a[0]+a[2]*10+a[1]*100;
b[2]=a[1]+a[0]*10+a[2]*100;
b[3]=a[1]+a[2]*10+a[0]*100;
b[4]=a[2]+a[0]*10+a[1]*100;
b[5]=a[2]+a[1]*10+a[0]*100;
printf("第%d次 可以排成如下几种形式:\n",s);
s++;
for(int i=0;i<6;i++) //输出排好的数字
{
printf("%03d\n",b[i]);
}
max=b[0];
min=b[0];
for(int i=0;i<6;++i) //最大值
{
if(b[i] > max)
{
max=b[i];
}
}
for(int i=0;i<6;++i) //最小值
{
if(b[i] < min)
{
min=b[i];
}
}
n=max-min; //差值
printf("max=%d\n",max);
printf("min=%d\n",min);
printf("%d-%d=%d\n\n",max,min,max-min);
}while(n!=495);
return 0;
}
请输入一个三位数:
8
第1次 可以排成如下几种形式:
008
008
080
800
080
800
max=800
min=8
800-8=792
第2次 可以排成如下几种形式:
792
972
729
279
927
297
max=972
min=279
972-279=693
第3次 可以排成如下几种形式:
693
963
639
369
936
396
max=963
min=369
963-369=594
第4次 可以排成如下几种形式:
594
954
549
459
945
495
max=954
min=459
954-459=495
简介输出:
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[3],b[6];
int s=1,max,min;
do{
a[0]=n%10;n=n/10;
a[1]=n%10;n=n/10;
a[2]=n;
b[0]=a[0]+a[1]*10+a[2]*100;
b[1]=a[0]+a[2]*10+a[1]*100;
b[2]=a[1]+a[0]*10+a[2]*100;
b[3]=a[1]+a[2]*10+a[0]*100;
b[4]=a[2]+a[0]*10+a[1]*100;
b[5]=a[2]+a[1]*10+a[0]*100;
max=b[0];
min=b[0];
for(int i=0;i<6;++i) //最大值
{
if(b[i] > max)
{
max=b[i];
}
}
for(int i=0;i<6;++i) //最小值
{
if(b[i] < min)
{
min=b[i];
}
}
n=max-min; //差值
printf("%d:%d-%d=%d\n",s,max,min,max-min);
s++;
}while(n!=495);
return 0;
}
输入:123
输出:
1:321-123=198
2:981-189=792
3:972-279=693
4:963-369=594
5:954-459=495
输入:18
输出:
1:810-18=792
2:972-279=693
3:963-369=594
4:954-459=495