pat甲级1069. The Black Hole of Numbers (20)、乙级1019. 数字黑洞 (20)——C语言函数库的应用

我们两清 提交于 2019-12-07 16:46:29

欢迎访问我的pat甲级题解目录哦https://blog.csdn.net/richenyunqi/article/details/84981078

欢迎访问我的pat乙级题解目录哦https://blog.csdn.net/richenyunqi/article/details/84981369

题目描述

甲级题目描述

 

乙级题目描述

注意点

(1)题目并未保证输入的n一定是在[1000,10000)之间的数,所以对于输入为53这样的数,第一行输出应为5300 - 0035 = 5265

(2)当输入的数为0或者6174时要特殊判断,输入0输出应为0000 - 0000 = 0000;输入6174输出应为7641 - 1467= 6174,而不能没有输出

(3)输出的数必须为4位,不够4位要在高位补0

C++代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,n1,n2;
    scanf("%d",&n);
    string num;
    do{
        num=to_string(n);
        while(num.size()<4)//整数不够4位要补0
            num+='0';
        sort(num.begin(),num.end());//按数字从小到大的顺序对字符数组排序
        n2=stoi(num);
        reverse(num.begin(),num.end());//翻转num
        n1=stoi(num);
        n=n1-n2;
        printf("%04d - %04d = %04d\n",n1,n2,n);//确保输出为4位整数,不够在高位补0
    }while(n!=6174&&n!=0);
    return 0;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!