#include <string.h>
#include <stdio.h>
/*
黑洞原是天文学中的概念,表示这样一种天体:它的引力场是如此之强,就连光也不能逃脱出来。数学中借用这个词,指的是某种运算,这种运算一般限定从某些整数出发,反复迭代后结果必然落入一个点或若干点。数字黑洞运算简单,结论明了,易于理解,故人们乐于研究。但有些证明却不那么容易。
任取一个数,相继依次写下它所含的偶数的个数,奇数的个数与这两个数字的和,将得到一个正整数。对这个新的数再把它的偶数个数和奇数个数与其和拼成另外一个正整数,如此进行,最后必然停留在数123。
例:所给数字 14741029
第一次计算结果 448
第二次计算结果 303
第三次计算结果 123
*/
void HeiDong(char *buff)
{ int sum,odd,even;
printf("%s/n",buff);
if(!strcmp(buff,"123"))
return;
for(sum=0,odd=0,even=0;buff[sum];++sum)
{ if(buff[sum] & 1)//if((buff[sum]-'0') & 1)
++odd;//奇数
else
++even;//偶数
}
//sum=odd+even;
sprintf(buff,"%d%d%d",even,odd,sum);
HeiDong(buff);
};
int main()
{ int x=14741029;
char buff[32];
itoa(x,buff,10);
HeiDong(buff);
return true;
};