任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456。求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则前边补0)。如此往复,数字会落入某个循环圈(称为数字黑洞)。

比如,刚才的数字会落入:[82962, 75933, 63954, 61974] 这个循环圈。

请编写程序,输出一个5位数的循环圈,若5位数全都相同则循环圈为 [0]。循环圈的输出格式仿照:

[82962, 75933, 63954, 61974]

算法实现

void digitBlackHole(int n) {int digit[5],loop[5],i,maxdigit,mindigit;if (n%11111) {      //判断五位数是否全部相同for (i=0; i<5; i++) {digit[0]=n/10000;       //分别计算各数位数字digit[1]=(n%10000)/1000;digit[3]=(n%100-n%10)/10;digit[2]=(n%1000-digit[3]*10-n%10)/100;digit[4]=n%10;quickSort(digit, 0, 4);     //从小到大排序maxdigit=digit[0]+digit[1]*10+digit[2]*100+digit[3]*1000+digit[4]*10000;mindigit=digit[0]*10000+digit[1]*1000+digit[2]*100+digit[3]*10+digit[4];loop[i]=maxdigit-mindigit;      //取重排列最大差值n=loop[i];      //循环求值}printf("[%d, %d, %d, %d]\n\n",loop[1],loop[2],loop[3],loop[4]);     //首数非循环圈数值} else {printf("[0]\n\n");      //五位数相同输出[0]}
}void quickSort(int a[],int low,int high) {      //快速排序int mid=a[low],t,l=low,r=high;if (low>=high) {return;}while (low<high) {if (a[high]<a[low]) {t=a[high];a[high]=a[low];a[low]=t;}if (mid==a[low]) {high--;} else {low++;}}quickSort(a, l, low-1);     //递归quickSort(a, low+1, r);
}

蓝桥杯:求一个五位数的数字循环黑洞[快速排序]相关推荐

  1. Java黑皮书课后题第6章:*6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和。使用下面的方法头:public static int sumDigits(long n)

    6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头:public static int sumDigits(long n) 题目 题目概述 槽点 代码 运行示例 ...

  2. 第六章第二题(求一个整数各位数字之和)(Sum the digits in an integer)

    *6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头: public static int sumDigits(long n) 例如:sumDigits(234) ...

  3. 10.python解答蓝桥杯省赛 回文数字

    10.python解答蓝桥杯省赛 回文数字 试题 历届试题 回文数字 提交此题 评测记录 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 观察数字:12321,123321 都有一个 ...

  4. 【蓝桥杯】【python】数字三角形

    问题描述 虽然我前后用了三种做法,但是我发现只有"优化思路_1"可以通过蓝桥杯官网中的测评,但是如果用c/c++的话,每个都通得过,足以可见python的效率之低(但耐不住人家好用 ...

  5. 蓝桥杯试题算法训练之数字三角形——Python满分解答

    数字三角形 问题描述 输入格式 样例输入 输出格式 样例输出 解题思路 代码实现 问题描述 下图展示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大. 每 ...

  6. 【蓝桥杯真题】幸运数字的解决方法

    本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 问题描述 到x星球旅行的游客都被发给一个整数,作为游客编号.x星的国王有个怪癖,他只喜欢数字3,5和7 ...

  7. 蓝桥杯2015初赛-奇妙的数字

    题目描述 小明发现了一个奇妙的数字.它的平方和立方正好把0~9的10个数字每个用且只用了一次.你能猜出这个数字是多少吗? 输出 请输出该数字,不要输出任何多余的内容. 代码如下: #include & ...

  8. 6.2(求一个整数各位数字之和)

    计算一个整数各位数字之和.使用下面的方法头: public static int sumDigits(long n) 例如:sumDigits(234)返回9(2+3+4) 编写程序提示用户输入一个整 ...

  9. 蓝桥杯.第几个幸运数字(数学_因子)

    Question: Solve: 这个题偏逆向思维,一个数只能被3或者5或者7整除,说明这个数可以且只能拆成一堆3,5,7的乘积,那么我们去枚举所有范围内3,5,7的阶乘能够拼凑出的数,知道它们的个数 ...

最新文章

  1. Java之线程安全的几种方式
  2. 电纸书kindle相关产品调研(没搞完)
  3. 我是如何学习写一个操作系统(四):操作系统之系统调用
  4. HDU6184【Counting Stars】(三元环计数)
  5. 2440 8字数码管 显示0到10 c语言,51单片机对8位数码管依次显示0-7的设计
  6. Visual Studio 2017 新功能(上)
  7. 基于ARM Cortex-M0+ 的Bootloader 参考
  8. 认识软件性能测试10大误区
  9. 使用 jQuery Mobile 与 HTML5 开发 Web App (十四) —— jQuery Mobile 方法下
  10. 架构设计的立方体扩展
  11. 【Unity Shader】---UnityShader 提供的CG/HLSL语义
  12. 使用lambdaquery() 报空指针异常_ARMv8 异常处理简介
  13. c语言扎金花编程,一个C语言开发的炸金花纸牌游戏附带vs性能分析报告
  14. 国密算法概述 SM1、SM2、SM3、SM4、SM7、SM9、ZUC
  15. 条件概率,乘法公式——概率论与数理统计(宋浩)
  16. 让Excel工作簿中宏自动运行的两种方法
  17. 【highcharts】highcharts(highmaps)实现疫情地图(一看就会篇)
  18. 在PGConf.Asia-主论坛,纵览腾讯云PostgreSQL技术演进
  19. phpcms v9文件上传的四次绕过复现
  20. 在Linux操作系统中,eclipse建立快捷方式

热门文章

  1. =。= 好吧,获取优酷视频真实下载地址的后台完成了
  2. 一款基于SpringBoot + MyBatis + Vue 的音乐网站项目
  3. 北邮2019网络安全学业网络研究学院机试复试回忆版
  4. 2022-07-09 第一小组 张明旭 前端HTML学习记录
  5. Padans Timedelta时间差
  6. Linux使用命令行复制文件的6个案例
  7. 北京国税:用虚拟化改进工作流程
  8. python打开excel文件
  9. “新基建”牵引:银行科技投入再加码
  10. HTML如何创建二级目录