关闭

蓝桥杯 ADV-170算法提高 数字黑洞

标签: 蓝桥杯
462人阅读 评论(0) 收藏 举报
分类:
问题描述
任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律:
1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;
2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数中含有0,则得到的数不足四位);
3)求两个数的差,得到一个新的四位数(高位零保留)。
重复以上过程,最后一定会得到的结果是6174。
比如:4312 3087 8352 6174,经过三次变换,得到6174
输入格式
一个四位整数,输入保证四位数字不全相同
输出格式
一个整数,表示这个数字经过多少次变换能得到6174
样例输入
4312
样例输出
3
#include <iostream>
#include <algorithm>
using namespace std;
int cmp1(int a, int b) {return a > b;}
int cmp2(int a, int b) {return a < b;}
int main() {
    int a[4];
    string s;
    cin >> s;
    for(int i = 0; i < 4; i++) {
        a[i] = s[i] - '0';
    }
    int res = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
    int cnt = 0;
    while(res != 6174) {
        cnt++;
        sort(a, a+4, cmp1);
        int big = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
        sort(a, a+4, cmp2);
        int small = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
        res = big - small;
        a[0] = res / 1000;
        a[1] = res / 100 - res / 1000 * 10;
        a[2] = res / 10 - res / 100 * 10;
        a[3] = res % 10;
    }
    cout << cnt;
    return 0;
}

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

蓝桥杯练习系统OJ题解目录

基础练习 蓝桥杯 BASIC-27 基础练习 2n皇后问题 蓝桥杯 BASIC-18 基础练习 矩形面积交 蓝桥杯BASIC-28 基础练习 Huffuman树 蓝桥杯 BASIC-21 基础练习 ...
  • liuchuo
  • liuchuo
  • 2016-08-04 02:05
  • 2030

蓝桥杯基础 数论 黑洞数

黑洞数是指于四位数中,只要数字不完全相同,将数字由大到小的排列减去由小到大的排列。假设一开始选定的数字为,=f(),=f(),...,=f() 用同样的规则继续算下去,最后的结果一定是6174。 ...
  • Strokess
  • Strokess
  • 2016-05-01 18:17
  • 2005

蓝桥杯 算法提高 学霸的迷宫

算法提高 学霸的迷宫   时间限制:1.0s   内存限制:256.0MB 问题描述   学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗。但学霸为了不要别人打扰,住在一个...
  • youqi1shi
  • youqi1shi
  • 2015-11-30 16:46
  • 2601

蓝桥杯ADV-17算法提高 统计单词数

问题描述   统计输入英文文章段落中不同单词(单词有大小写之分,  但统计时忽略大小写)各自出现的次数。 输入段落中所含单词的总数不超过100,最长单词的长度不超过20个字母. 输入格式   一...
  • liuchuo
  • liuchuo
  • 2016-07-22 00:19
  • 620

蓝桥杯 ADV-202算法提高 最长公共子序列(动态规划)

问题描述   给定两个字符串,寻找这两个字串之间的最长公共子序列。 输入格式   输入两行,分别包含一个字符串,仅含有小写字母。 输出格式   最长公共子序列的长度。 样例输入 abcd...
  • liuchuo
  • liuchuo
  • 2016-07-21 23:50
  • 388

蓝桥杯 ADV-193算法提高 盾神与条状项链

问题描述   有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n的项链。当他准备把项链首尾相接的时候,土方进来...
  • liuchuo
  • liuchuo
  • 2016-07-22 00:16
  • 532

蓝桥杯 ADV_193 算法提高 新建Microsoft Word文档 (java)

算法提高 新建Microsoft Word文档   时间限制:1.0s   内存限制:256.0MB      问题描述   L正在出题,新建了一个word文档,想不好取什么名字,身旁一人...
  • xiaodingqq
  • xiaodingqq
  • 2017-12-18 21:00
  • 56

蓝桥杯 ADV-127 算法提高 日期计算(java)

算法提高 日期计算   时间限制:1.0s   内存限制:256.0MB      问题描述   已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况。...
  • xiaodingqq
  • xiaodingqq
  • 2018-01-02 20:28
  • 30

蓝桥杯 算法提高 9-3摩尔斯电码 ADV-226

蓝桥杯 算法提高 9-3摩尔斯电码 ADV-226 问题描述   摩尔斯电码破译。类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文。请不要使用"zylib.h",只能使用标准库函数。...
  • xiaodingqq
  • xiaodingqq
  • 2017-11-14 13:40
  • 105

蓝桥杯 ADV-206 算法提高 不大的数

问题描述   在当今的大数据时代,超大数的高精度计算已经成为众多领域的热门研究之一。现在T校也想在此领域有所造诣已造福于全社会,然而由于时间有限,所以短时间内难以找出大数计算的通用算法,于是学校...
  • liuchuo
  • liuchuo
  • 2016-07-22 00:26
  • 643
    个人资料
    • 访问:539826次
    • 积分:15668
    • 等级:
    • 排名:第811名
    • 原创:1051篇
    • 转载:0篇
    • 译文:0篇
    • 评论:170条
    打滚求打赏(๑ ̄ ̫  ̄๑)
    此处弱弱求打赏~~万一有好心人呢~~
    谨以此献给正在努力刷题的你^_^
    文章分类