美文网首页
B1019 数字黑洞 (20分)

B1019 数字黑洞 (20分)

作者: km15 | 来源:发表于2020-02-08 11:02 被阅读0次

/*
题意:
1、输入四个数字,按非递增排序,再按非递减排序,然后两数相减,知道出现6174
数在10的4次方

2、如果数字是全都一样的,就输出0000

解题:
1、只能输入字符串了,或者数字,把每一位剥离出来在一个数组中(取余)
2、然后sort函数
3、还要再把它转为数字(设置成函数吧)
4、用while,如果ans!=6147,就一直减,迭代这个过程

learn && wrong:
1、不足四位,补0
2、用for转为数组,本质没有变,就是少了个变量,更简单了
3、while(1)与break联用
4、dev如何自动查看变量呢,没有提示好麻烦呀

*/
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
#include <iostream>
#include <algorithm>

using namespace std;
bool cmp(int a, int b) {
    return a > b;
}

int array1[5];

int into_num(int a[]) { //转为数字函数
    int temp = 0;
    for (int i = 0; i < 4; ++i) {
        temp = temp * 10 + a[i];
    }

    return temp;
}

int xiabiao;

void into_array(int a) {    //转为数组 (!!!!)
    for (int i = 0;i < 4;++i) {
        array1[i] = a % 10;
        a /= 10;
    }
}

int main(int argc, char** argv) {

    int num;
    cin >> num; //输入这个数字

    int ans = num;
    while (1) {
        into_array(ans); //每次进入前,先转为数组,这里每次xiabiao都会重置为0,所以下标是没错的 

        sort(array1, array1 + 4);//递增排序
        int n1 = into_num(array1);

        sort(array1, array1 + 4, cmp);//递减排序
        int n2 = into_num(array1);

        ans = n2 - n1;
        printf("%04d - %04d = %04d\n", n2, n1, ans);//!!!
        if (ans == 0 || ans == 6174) break;//(!!!)while为1连用
    }
    return 0;
}

相关文章

  • B1019 数字黑洞 (20分)

    /*题意:1、输入四个数字,按非递增排序,再按非递减排序,然后两数相减,知道出现6174数在10的4次方 2、如果...

  • 数字黑洞问题

    给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2...

  • 1019 数字黑洞

    给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 ...

  • Python 数字黑洞

    前言 学校熬了两个星期,在校时看到某本数学教材里讲了一个关于数字黑洞的算法,任何一串非负整数,有限的步骤处理后,终...

  • 1019.数字黑洞

    题目描述 给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个...

  • PAT-B 1019 数字黑洞 (C语言)

    题目 链接:PAT (Basic Level) Practice 1019 数字黑洞 给定任一个各位数字不完全相同...

  • PAT Basic 1019 数字黑洞

    给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 ...

  • 1019. 数字黑洞 (20)

    给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2...

  • 520!!!数字黑洞!!!正能量!!!

    既然大家对数字谐音这么感兴趣,我就给大家普及一个数学知识,数字黑洞!!! 把5、2、0三个数字从大到小排列,...

  • 1009数字黑洞 (20)——python

    题目描述 给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个...

网友评论

      本文标题:B1019 数字黑洞 (20分)

      本文链接:https://www.haomeiwen.com/subject/iyzbxhtx.html