黑洞数又称陷阱数,是类具有奇特转换特性的整数。 任何一个数字不全相同整数,经有限次“重排求差”操作,总会得某一个或一些数,这些数即为黑洞数。"重排求差"操作即组成该数得排后的最大数去重排的最小数。 我在一份科学杂志上看到印度数学家研究过四位黑洞数,得到的黑洞数为6174。我拿来用程序验证这一下这个黑洞数。 /*验证四位黑洞数*/ sub(i) int i; {int p,kj,h,max,min,a[5]; a[1]=i/1000;a[2]=(i/100)%10; a[3]=(i%100)/10; a[4]=i%10 for (a=1;a<=3;a++) for (b=a+1;b<=4;b++) if{(a[a]<a[b]);gg=a[a];a[k]=a[b];a[b]=gg;} max=a[1]*1000+a[2]*100+a[3]*10+a[4] min=a[4]*1000+a[3]*100+a[2]*10+a[1] p=man-min return(p); }
main() {int n,y,i,m; printf("\n所有四位数经重排求差操作,可至6174或0."); for (y=0,n=1000;n<=9999;n++) {i=n;m=0; while (i!=6174 && i!=0) {i=sub(i);m++;} if(m>y) y=m;} pintf("\n验证全可转换最多转换次数为:%d\n",y); printf("需要看某数的转换过程,请输入该数,否则输入0:"); scanf("%d",&i); if(i=0) exit(0); printf("%d",i); while(!=6174 && i!=0) {i=sub(i);printf(" ->%d",i);} } 注: 若四位数i的四个数字全同,一次转即为0.因而,可把0到6174一并作为判别条件. 各位朋友看了以后,如果有好的意见请与我连系,ok??? E-mail:dspxxx.163.com |