[PAT-乙级]1019.数字黑洞

来源:互联网 发布:阿里云怎么选择刷机包 编辑:程序博客网 时间:2024/05/12 19:19

1019. 数字黑洞 (20)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。

例如,我们从6767开始,将得到

7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174
7641 - 1467 = 6174
... ...

现给定任意4位正整数,请编写程序演示到达黑洞的过程。

输入格式:

输入给出一个(0, 10000)区间内的正整数N。

输出格式:

如果N的4位数字全相等,则在一行内输出“N - N = 0000”;否则将计算的每一步在一行内输出,直到6174作为差出现,输出格式见样例。注意每个数字按4位数格式输出。

输入样例1:
6767
输出样例1:
7766 - 6677 = 10899810 - 0189 = 96219621 - 1269 = 83528532 - 2358 = 6174
输入样例2:
2222
输出样例2:
2222 - 2222 = 0000
输入的范围是(0,10000),根据输入要生成最大数max和最小数min。输入不为4位数,我们再生成max和min要补0,补成4位数。

其最终结果肯定是6174。


#include<stdio.h>#include<vector>#include<algorithm>using namespace std;vector<int> v;int max(int x){    int sum = 0;    v.clear();    while(x != 0)    {        v.push_back(x%10);        x = x / 10;    }    while(v.size() != 4)        v.push_back(0);    sort(v.begin(), v.end());    for(int i = v.size()-1; i >= 0; i --)        sum = sum*10 + v[i];    return sum; }int min(int x){    int sum = 0;    v.clear();    while(x != 0)    {        v.push_back(x%10);        x = x / 10;    }    while(v.size() != 4)        v.push_back(0);    sort(v.begin(), v.end());    for(int i = 0; i < v.size(); i ++)        sum = sum*10 + v[i];    return sum; }int main(){    //freopen("D://input.txt", "r", stdin);    int n;    //while(scanf("%d", &n) != EOF)    scanf("%d", &n);    {        if(n == 6174)        {            printf("%04d - %04d = %04d\n", max(n), min(n), max(n)-min(n));            n = max(n) - min(n);        }        while(n != 6174)        {            if(max(n) == min(n))            {                    printf("%04d - %04d = 0000\n", max(n), min(n));                    break;            }            printf("%04d - %04d = %04d\n", max(n), min(n), max(n)-min(n));            n = max(n) - min(n);        }    }    return 0;} 


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 gta5买了车以后怎么办 htc卡在开机画面怎么办 cf里名字占用了怎么办 烫伤起了大水泡怎么办 手干活磨起泡了怎么办 手上磨了个水泡怎么办 手指磨出水泡了怎么办 手上磨了个泡怎么办 脚上的水泡破了怎么办 脚上水泡破了怎么办 烫伤之后破皮了怎么办 皮肤被烫伤破皮怎么办 烫伤起泡皮掉了怎么办 被烫伤起大水泡怎么办 被烫伤起小水泡怎么办 脚走路磨起泡了怎么办 脚趾头磨了个泡怎么办 脚趾头起了大泡怎么办 脚上有脚气起水泡很痒怎么办 脚底有水泡很痒怎么办 脚底磨得起泡了怎么办 脚底有水泡很疼怎么办 脚底硬皮走路疼怎么办 上火鼻子上长脓包怎么办 鼻子上总是长脓包怎么办 孕妇脚上长水泡很痒怎么办 脚气有水泡很痒怎么办 脚又痒又脱皮怎么办 手指出水泡很痒怎么办 鼻子里上火长泡怎么办 鼻子又干又痒怎么办 眼皮长了小水泡怎么办 眼皮上长了个泡怎么办 眼皮上长了粉刺怎么办 上眼皮又肿又疼怎么办 眼皮长了个痘怎么办 手指上小水泡痒怎么办 阴茎长了一个泡怎么办 干活累的腰疼怎么办 手长白色的小泡怎么办 全身长水泡很痒怎么办