蓝桥杯:求一个五位数的数字循环黑洞[快速排序]
任意一个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);
}
蓝桥杯:求一个五位数的数字循环黑洞[快速排序]相关推荐
- Java黑皮书课后题第6章:*6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和。使用下面的方法头:public static int sumDigits(long n)
6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头:public static int sumDigits(long n) 题目 题目概述 槽点 代码 运行示例 ...
- 第六章第二题(求一个整数各位数字之和)(Sum the digits in an integer)
*6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头: public static int sumDigits(long n) 例如:sumDigits(234) ...
- 10.python解答蓝桥杯省赛 回文数字
10.python解答蓝桥杯省赛 回文数字 试题 历届试题 回文数字 提交此题 评测记录 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 观察数字:12321,123321 都有一个 ...
- 【蓝桥杯】【python】数字三角形
问题描述 虽然我前后用了三种做法,但是我发现只有"优化思路_1"可以通过蓝桥杯官网中的测评,但是如果用c/c++的话,每个都通得过,足以可见python的效率之低(但耐不住人家好用 ...
- 蓝桥杯试题算法训练之数字三角形——Python满分解答
数字三角形 问题描述 输入格式 样例输入 输出格式 样例输出 解题思路 代码实现 问题描述 下图展示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大. 每 ...
- 【蓝桥杯真题】幸运数字的解决方法
本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 问题描述 到x星球旅行的游客都被发给一个整数,作为游客编号.x星的国王有个怪癖,他只喜欢数字3,5和7 ...
- 蓝桥杯2015初赛-奇妙的数字
题目描述 小明发现了一个奇妙的数字.它的平方和立方正好把0~9的10个数字每个用且只用了一次.你能猜出这个数字是多少吗? 输出 请输出该数字,不要输出任何多余的内容. 代码如下: #include & ...
- 6.2(求一个整数各位数字之和)
计算一个整数各位数字之和.使用下面的方法头: public static int sumDigits(long n) 例如:sumDigits(234)返回9(2+3+4) 编写程序提示用户输入一个整 ...
- 蓝桥杯.第几个幸运数字(数学_因子)
Question: Solve: 这个题偏逆向思维,一个数只能被3或者5或者7整除,说明这个数可以且只能拆成一堆3,5,7的乘积,那么我们去枚举所有范围内3,5,7的阶乘能够拼凑出的数,知道它们的个数 ...
最新文章
- Java之线程安全的几种方式
- 电纸书kindle相关产品调研(没搞完)
- 我是如何学习写一个操作系统(四):操作系统之系统调用
- HDU6184【Counting Stars】(三元环计数)
- 2440 8字数码管 显示0到10 c语言,51单片机对8位数码管依次显示0-7的设计
- Visual Studio 2017 新功能(上)
- 基于ARM Cortex-M0+ 的Bootloader 参考
- 认识软件性能测试10大误区
- 使用 jQuery Mobile 与 HTML5 开发 Web App (十四) —— jQuery Mobile 方法下
- 架构设计的立方体扩展
- 【Unity Shader】---UnityShader 提供的CG/HLSL语义
- 使用lambdaquery() 报空指针异常_ARMv8 异常处理简介
- c语言扎金花编程,一个C语言开发的炸金花纸牌游戏附带vs性能分析报告
- 国密算法概述 SM1、SM2、SM3、SM4、SM7、SM9、ZUC
- 条件概率,乘法公式——概率论与数理统计(宋浩)
- 让Excel工作簿中宏自动运行的两种方法
- 【highcharts】highcharts(highmaps)实现疫情地图(一看就会篇)
- 在PGConf.Asia-主论坛,纵览腾讯云PostgreSQL技术演进
- phpcms v9文件上传的四次绕过复现
- 在Linux操作系统中,eclipse建立快捷方式