黑洞数(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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/616085.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element input组件自动失去焦点问题解决

最近在 Vue3 ElementPlus 中&#xff0c;使用 el-input 组件时&#xff0c;如果设置了 v-model&#xff0c;那么在每次改变内容后后&#xff0c;input 会自动失去焦点&#xff0c;这样会导致用户无法输入多个字符。 一、问题原因 如上图所示&#xff0c;配置项的 Name 和 Cod…

算法训练营Day36

#Java #动态规划 开源学习资料 Feeling and experiences&#xff1a; 动态规划&#xff1a;01背包理论基础&#xff1a;卡码网题目链接 小明是一位科学家&#xff0c;他需要参加一场重要的国际科学大会&#xff0c;以展示自己的最新研究成果。他需要带一些研究材料&#xf…

信息收集之子域名收集

渗透测试常见手法和思维 信息收集 简述 信息收集对于渗透测试前期来说是非常重要的&#xff0c;因为只有我们掌握了目标网站或目标主机足够多的信息之后&#xff0c;我们才能更好地对其进行漏洞检测。正所谓&#xff0c;知己知彼百战百胜&#xff01; 信息收集的方式可以分…

linux下can调试工具canutils编译安装

命令安装只需要 sudo apt-get install canutils 一、下载源码 下载canutils和libsocketcan libsocketcan地址&#xff1a;https://public.pengutronix.de/software/libsocketcan/libsocketcan-0.0.11.tar.bz2 #0.0.11版本 canutils地址&#xff1a;https://public.pengutronix…

【计算机毕业设计】基于springboot的校园跑腿任务管理系统java+vue

校园跑腿管理系统又称“效率鸭”跑腿系统&#xff0c;是在学校进行现代化的信息管理和提供信息服务的基础&#xff0c;引导人们快速、准确地获取快递资源、预约洗浴并对外卖资源进行有效管理的保证。疫情当下&#xff0c;为了减少人员的聚集&#xff0c;因此&#xff0c;迫切需…

StampedLock详解

在现代的Java应用中&#xff0c;同步是一个核心问题&#xff0c;尤其是在高并发环境下。Java提供了多种同步机制&#xff0c;从基本的synchronized关键字到更高级的ReentrantLock。但在Java 8中&#xff0c;引入了一个新的同步原语——StampedLock&#xff0c;它旨在提供更高的…

C#使用Office原生库开发后的运行问题

目录 一、准备 二、测试Office2007 1、直接运行 2、安装VS2009 3、重新在“引用”库 4、安装“包” 5、报错修复 6、小结 三、测试office2010 1、在VS2019中打开原项目 2、添加“包” 3、重新添加引用 4、测试Word功能 5、测试卸掉那两个“包” 6、测试Excel功能…

索引策略-多列索引

一. 前言 当我们对多列索引的理解不够深刻的时候,往往会为每个列创建独立的索引或者按照错误的顺序创建多列索引。 二. 案例说明 问题一: 为每个列创建独立索引 CREATE TABLE t(c1 INT,c2 INT,c3 INT,KEY(c1),KEY(c2),KEY(c3) );这种索引策略,一般都是由于人们听到一些专家诸…

阳光保险选择OceanBase稳定运行超700天

阳光保险集团成立于 2005 年 7 月&#xff0c;旗下拥有财产保险、人寿保险、信用保证保险、资产管理等多家专业子公司&#xff0c;是全球市场化企业中成长最快的集团公司之一&#xff0c;目前位列中国保险行业前八。随着数字化升级趋势的不断加速&#xff0c;很多企业产生将软硬…

达摩研究院Paraformer-large模型已支持windows

简介 FunASR是一个基础语音识别工具包&#xff0c;提供多种功能&#xff0c;包括语音识别&#xff08;ASR&#xff09;、语音端点检测&#xff08;VAD&#xff09;、标点恢复、语言模型、说话人验证、说话人分离和多人对话语音识别等。FunASR提供了便捷的脚本和教程&#xff0…

二十三、关于vite项目中无法使用minio的解决方案

问题背景 项目需要上传大文件,既然是大文件,如果一次性进行读取发送、接收都是不可取的,很容易导致内存问题。所以对于大文件上传,就一定要实现切片上传、断点续传。如果自己实现相对比较麻烦,但好消息是我们的文件服务使用了开源的minio作为对象存储服务,并且minio也提…

OpenGL排坑指南—贴图纹理绑定和使用

一、前言 在OpenGL学习 的纹理这一章中讲述了纹理贴图的使用方式&#xff0c;主要步骤是先创建一个纹理的对象&#xff0c;和创建顶点VAO类似&#xff0c;然后就开始绑定这个纹理&#xff0c;最后在循环中使用&#xff0c;有时候可能还要用到激活纹理单元的函数。然而&#xff…

练习-sizeof()和strlen()

目录 前言解题技巧一、sizeof()练习题1.1 整型数组1.1.1 一维整型数组1.1.2 二维整型数组 1.2 字符数组1.3 字符指针 二、strlen()练习题2.1 字符数组初始化时不包含\02.2 字符数组初始化包含\02.3 字符指针指向字符串常量 总结 前言 最近有点疲倦&#xff0c;啊啊啊&#xff…

电容的基础知识

一、电容单位 电容亦称作“电容量”&#xff0c;是指在给定电位差下的电荷储藏量&#xff0c;记为C&#xff0c;国际单位是法拉&#xff08;F&#xff09;。在国际单位制里&#xff0c;电容的单位是法拉&#xff0c;简称法&#xff0c;符号是F&#xff0c;由于法拉这个单位太大…

vue3项目部署到服务器,刚打开没事,一刷新页面就404

vue3项目部署到服务器&#xff0c;刚打开没事&#xff0c;一刷新页面就404 vue3项目&#xff0c;在本地调试时各方面都没毛病&#xff0c;刷新也没毛病&#xff0c;但是&#xff0c;扔到服务器上&#xff0c;第一次打开是正常的&#xff0c;再刷新下就404了&#xff0c;不知道什…

视频号小店入口在哪?需要什么资质?实操详解!

我是电商珠珠 视频号小店于22年7月产生&#xff0c;距今才发展了一年时间。今年正是它风口期正盛的时候&#xff0c;有很多想要入驻的新手还不知道它在哪&#xff0c;都需要什么资质。 接下来我来给大家详细的讲一下。 视频号小店入口 1、手机端 打开vx搜索“视频号开店”…

第二十章 常见的设计模式

文章目录 一、设计模式二、单例模式三、工厂模式四、抽象工厂模式五、适配器模式六、观察者模式七、代理模式八、策略模式九、MVC模式十、组合模式 一、设计模式 什么是设计模式 设计模式是一种固定的解决问题的方式是一套经过代码设计经验总结优化之后的固定的方式是软件工程…

vue2使用富文本wangeditor

安装 npm i wangeditor --save引用 import E from wangeditor;使用 // 富文本初始化initEditor() {this.isEdit true;this.$nextTick(() > {this.editor new E(this.$refs.editorElem); //绑定节点this.editor.config.height 550; //默认高度为 300&#xff0c;设置高度…

GLES学习笔记---立方体贴图(一张图)

一、首先看一张效果图 立方体贴图 二、纹理坐标划分 如上图是一张2D纹理&#xff0c;我们需要将这个2D纹理贴到立方体上&#xff0c;立方体有6个面&#xff0c;所以上面的2D图分成了6个面&#xff0c;共有14个纹理坐标 三、立方体 上边的立方体一共8个顶点坐标&#xff0c;范围…

图像处理中常用的距离

说明 在图像处理中&#xff0c;常用的距离度量用于衡量两个向量或特征之间的差异或相似性。以下是一些常用的距离度量及其使用说明和应用场景&#xff1a; 欧氏距离&#xff08;Euclidean Distance&#xff09;&#xff1a;欧氏距离是最常用的距离度量&#xff0c;用于衡量两个…