黑洞數的驗證
發表時間:2023-08-19 來源:明輝站整理相關軟件相關文章人氣:
[摘要]黑洞數又稱陷阱數,是類具有奇特轉換特性的整數。任何一個數字不全相同整數,經有限次“重排求差”操作,總會得某一個或一些數,這些數即為黑洞數。"重排求差"操作即組成該數得排后的最大數...
黑洞數又稱陷阱數,是類具有奇特轉換特性的整數。
任何一個數字不全相同整數,經有限次“重排求差”操作,總會得某一個或一些數,這些數即為黑洞數。"重排求差"操作即組成該數得排后的最大數去重排的最小數。
我在一份科學雜志上看到印度數學家研究過四位黑洞數,得到的黑洞數為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