[编程题]1019. 数字黑洞 (20)
发布日期:2021-05-07 23:12:04 浏览次数:24 分类:原创文章

本文共 1006 字,大约阅读时间需要 3 分钟。

关键词:字符串
试题链接:
https://www.nowcoder.com/questionTerminal/2e6a898974064e72ba09d05a60349c9e
问题描述:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

思路:
这道题困扰我比较长时间的是关于string字符串的一些函数,比如begin(),end()这种我都不是很熟练,以至于在开始查找这些函数花了比较多的时间,在思路上其实题目描述的已经很清楚了,正常做下去就可以AC。
备注:
题目有一个坑是仅仅输入一个数字3,这个时候不是四位数,需要在后面补0。

解决方案:

#include<iostream>#include<string.h>#include<algorithm>using namespace std;int main(){       string num;    int x,y,res;    cin>>num;    //长度不足4则补0    while(num.length()<4){           num+="0";    }    string max=num,min=num;    sort(min.begin(),min.end());    sort(max.begin(),max.end());    reverse(max.begin(),max.end());    //结果不是6174就继续循环     do{           //字符数组转int型        x=stoi(min);        y=stoi(max);        res=y-x;        string resstr=to_string(res);        if(resstr.size()<4)            resstr+="0";        cout<<max<<" - "<<min<<" = "<<resstr<<"\n";        max=min=resstr;            sort(min.begin(),min.end());        sort(max.begin(),max.end());        reverse(max.begin(),max.end());    }while(res%1111!=0&&res!=6174);    return 0;}
上一篇:[编程题]最大公约数和最小公倍数
下一篇:[编程题]有几个PAT(25)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月18日 11时53分03秒