黑洞数(C语言)

黑洞数也称为陷阱数,又称“Kaprekar问题”,是一类具有奇特转换特性的数。

任何一个各位数字不全相同的三位数,经有限次“重排求差”操作,总会得到495。最后所得的495即为三位黑洞数。所谓“重排求差”操作即组成该数的数字重排后的最大数减去重排后的最小数。(6174为四位黑洞数。)

例如,对三位数207:

第1次重排求差得:720 - 27 = 693;
第2次重排求差得:963 - 369 = 594;
第3次重排求差得:954 - 459 = 495;
以后会停留在495这一黑洞数。如果三位数的3个数字全相同,一次转换后即为0。

任意输入一个三位数,编程给出重排求差的过程。
 

#include <stdio.h>
int test(char arr[] )
{
    int i = 0;
    int j = 0;
    int num1 = 0;
    int num2 = 0;
    char temp = '\0';
    for( i = 0 ; i < 2 ; i++)  对字符数组排序
    {
        for( j = 0 ; j < 3 - i - 1 ;j++)
        {
            if( arr[j] > arr[j+1] )
            {
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }

    num1 = arr[0]-'0' + ( arr[1] - '0' ) * 10 + ( arr[2] - '0' ) *100 ;
    num2 = arr[2]-'0' + ( arr[1] - '0' ) * 10 + ( arr[0] - '0' ) *100 ;
    printf("%d - %d = %d\n",num1,num2,num1-num2);
    arr[0] = (char)((num1-num2)/100)+'0';  对 num1 - num2 处理成新的数组
    arr[1] = (char)(((num1-num2)/10)%10)+'0';
    arr[2] = (char)((num1-num2)%10)+'0';
    return num1-num2;
}
int main()
{
    char arr[4] = { '\0'};
    scanf("%s",arr);  接收三位数
    while( 1 )
    {
        if( test(arr) == 495 )
        {
            return 0;
        }
    }
    return 0;
}

相关推荐

  1. 黑洞C语言

    2024-01-17 13:36:04       53 阅读
  2. C语言-水仙花

    2024-01-17 13:36:04       58 阅读
  3. C语言组的初始化

    2024-01-17 13:36:04       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-17 13:36:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-17 13:36:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-17 13:36:04       87 阅读
  4. Python语言-面向对象

    2024-01-17 13:36:04       96 阅读

热门阅读

  1. 快速了解STM32的ADC功能,从入门到精通

    2024-01-17 13:36:04       55 阅读
  2. Github Copilot 的使用方法和快捷键*

    2024-01-17 13:36:04       77 阅读
  3. Nue.js 是什么?

    2024-01-17 13:36:04       47 阅读
  4. What is `HttpServletRequestWrapper` does?

    2024-01-17 13:36:04       64 阅读
  5. ConcurrentHashMap源码解析

    2024-01-17 13:36:04       68 阅读
  6. route和router的区别

    2024-01-17 13:36:04       52 阅读
  7. C++中的符号->

    2024-01-17 13:36:04       42 阅读
  8. messages,CentOS 7不收集日志或不存在 /var/log/messages

    2024-01-17 13:36:04       50 阅读