首页 | 社区 | 博客 | 招聘 | 文章 | 新闻 | 下载 | 读书 | 代码
亲,您未登录哦! 登录 | 注册

黑洞数的验证

打印文章

分享到:
黑洞数又称陷阱数,是类具有奇特转换特性的整数。
任何一个数字不全相同整数,经有限次“重排求差”操作,总会得某一个或一些数,这些数即为黑洞数。"重排求差"操作即组成该数得排后的最大数去重排的最小数。
我在一份科学杂志上看到印度数学家研究过四位黑洞数,得到的黑洞数为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

本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )

编程爱好者论坛

本栏最新文章