实验4-1-12 黑洞数 (20分)
程序员文章站
2022-03-13 13:37:53
...
输入样例:
123
输出样例:
1: 321 - 123 = 198
2: 981 - 189 = 792
3: 972 - 279 = 693
4: 963 - 369 = 594
5: 954 - 459 = 495
#include<stdio.h>
void max (int* a,int* b,int* c);
int main(void){
int a,b,c,n,m=0,i=1;
scanf("%d",&n);
do{
a=n%10;
b=n%100/10;
c=n/100;
max (&a,&b,&c); //将a,b,c由小到大排序
m=a*100+b*10+c; //组成最小的数
n=c*100+b*10+a; //组成最大的数
printf("%d: %d - %d = %d\n",i,n,m,n-m);
i++; //计数
n-=m;
if(!n) break;
} while(n!=495);
return 0;
}
/*借助位运算交换两整数的值*/
void max (int* a,int* b,int* c){
if(*a>*b) *a ^=*b ^=*a ^=*b;
if(*a>*c) *a ^=*c ^=*a ^=*c;
if(*c<*b) *b ^=*c ^=*b ^=*c;
}
下一篇: 牛客SQL练习-72-考试分数(一)