[C] c语言 四位数 黑洞数 →→→→→进入此内容的聊天室

来自 Perl Goat, 2024-03-21, 写在 C, 查看 33 次.
URL http://www.code666.cn/view/0c8398fd
  1.  
  2. 任选4个不完全相同的数字(像1111就不行),让“最大排列”减“最小排列”(例如8753-3578),不断重复这个动作,最后一定会得到相同的结果:6174
  3.  
  4.  
  5. #include <stdio.h>
  6.  
  7. int convert(int number[],int ans);
  8. int *sort(int number[],int len);
  9.  
  10. int main(void)
  11. {
  12.     int number[4] = {0};
  13.     int *p = NULL;
  14.     int n = 0;
  15.     int ans = 0;
  16.     int count = 0;
  17.     printf("请输入一个互不相同的四位数:");
  18.     scanf("%d",&n);
  19.     printf("输入的四位数是:%d\n",n);
  20.     ans = n;
  21.     while(ans!=6174)
  22.     {
  23.         ans = convert(number,ans);
  24.         printf("第%d次:%d\n",count+1,ans);
  25.         ++count;
  26.     }
  27.     printf("经过了%d次最大减最小的动作\n",count);
  28.     return 0;
  29. }
  30.  
  31. int *sort(int number[],int len) //大到小的排序
  32. {
  33.     int a =0;
  34.     for(int i=0; i<len; ++i)
  35.     {
  36.         for(int j=i+1;j<len;++j)
  37.         {
  38.             if(number[i] <number[j])
  39.             {
  40.                 a = number[i];
  41.                 number[i] = number[j];
  42.                 number[j] = a;
  43.             }
  44.         }
  45.     }
  46.     return number;
  47. }
  48. int convert(int number[],int ans)//每次变换得到的数字
  49. {
  50.     int *p = NULL;
  51.     int m=0;
  52.     number[0] = ans/1000;  //把这个数放入数组
  53.     number[1] = ans%1000/100;
  54.     number[2] = ans%100/10;
  55.     number[3] = ans%10;
  56.     p = sort(number,4);
  57.     m=(*p*1000+*(p+1)*100+*(p+2)*10+*(p+3))- ( *(p+3)*1000+*(p+2)*100+*(p+1)*10+*p);//最大数字减去最小数字
  58.     return m;
  59. }

回复 c语言 四位数 黑洞数 rss

标题 提交人 语言 时间
Re: c语言 四位数 黑洞数3333 Voluminous Camel c 3 月 前.
Re: c语言 四位数 黑洞数 Colorant Meerkat c 4 月 前.

回复 "c语言 四位数 黑洞数"

这儿你可以回复上面这条便签

captcha