数字黑洞

#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;

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值