长沙尚学堂|十年树人|成就高薪
致力推动IT教育,我们正在行动    咨询热线:0731-83072091

C语言编程求三位数中的黑洞数

时间:2018-03-22 09:44:34   来源:网络转载   阅读:
  黑洞数又称陷阱数,是类具有奇特转换特性的整数。也就是说任何一个数字不全相同的整数,经有限次重排求差”操作,总会得到某一个或一些数。当然数字中有相同的也不要紧,但是几位数却不能完全相同,像是111.222.。。。999这些都应排除在外。

  题目:编程求三位数中的“黑洞数”。

  程序源代码:

  #include

  int maxof3(int, int, int);

  int minof3(int, int, int);

  int main()

  {

  int i, k;

  int hun, oct, data, max, min, j, h;

  printf("请输入一个三位数:");

  scanf("%d", &i);

  hun=i/100;

  oct=i%100/10;

  data=i%10;

  max=maxof3(hun, oct, data);

  min=minof3(hun, oct, data);

  j=max-min;

  for(k=0; ; k++) /*k控制循环次数*/

  {

  h=j; /*h记录上一次最大值与最小值的差*/

  hun=j/100;

  oct=j%100/10;

  data=j%10;

  max=maxof3(hun, oct, data);

  min=minof3(hun, oct, data);

  j=max-min;

  if(j==h) /*最后两次差相等时,差即为所求黑洞数*/

  {

  printf("%d\n", j);

  break; /*跳出循环*/

  }

  }

  return 0;

  }

  /*求三位数重排后的最大数*/

  int maxof3(int a,int b,int c)

  {

  int t;

  if(a

  {

  t=a;

  a=b;

  b=t;

  }

  if(a

  {

  t=a;

  a=c;

  c=t;

  }

  if(b

  {

  t=b;

  b=c;

  c=t;

  }

  return(a*100+b*10+c);

  }

  /*求三位数重排后的最小数*/

  int minof3(int a, int b, int c)

  {

  int t;

  if(a

  {

  t=a;

  a=b;

  b=t;

  }

  if(a

  {

  t=a;

  a=c;

  c=t;

  }

  if(b

  {

  t=b;

  b=c;

  c=t;

  }

  return(c*100+b*10+a);

  }

标签:C语言
分享:0
开班计划

试听申请表

全程面授,不高薪都难

报名成功后,尚学堂工作人员将在24小时内与您联系

热门文章
视频下载
猜你喜欢