题目描述

卡布列克是一位数学家,他在研究数字时发现:任意一个不是用完全相同数字组成的四位数,如果对它们的每位数字重新排序,组成一个较大的数和一个较小的数,然后用较大数减去较小数,差不够四位数时补零,类推下去,最后将变成一个固定的数:6174,这就是卡布列克常数,例如:

4321−1234=3087
8730−378=8352
8532−2358=6174
7641−1467=6174

如果 k 位数也照此办理,它们不是变成一个数,而是在几个数字之间形成循环,称作卡布列克圆舞曲。例如对于五位数 54321:

54321−12345=41976
97641−14679=82962
98622−22689=75933
97533−33579=63954
96543−34569=61974
97641−14679=82962

我们把 82962,75933,63954,61974 称作循环节,即卡布列克圆舞曲。
现在,请你编写一个程序来计算卡布列克圆舞曲之数的循环节。

输入输出格式

输入格式

输入为一个待求“卡布列克圆舞曲”的起始整数 n。

输出格式

针对输入,打印出对应的所有循环节,数据之间用空格隔开。

输入输出样例1

输入

4321

输出

6174

输入输出样例2

输入

54321

输出

82962 75933 63954 61974

说明提示

1≤n<231


代码实现:

【就是纯模拟题目描述的过程,掌握 to_string、stol、sort等函数,可以简化过程】

#include<iostream>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;typedef long long ll;
bool cmp(char a,char b) {return a>b;  //从大到小
}ll compute(ll n) {string str=to_string(n);sort(str.begin(),str.end()); //sort函数没有返回值,直接对字符串本身进行操作string minStr=str;ll minNum=stol(minStr);sort(str.begin(),str.end(),cmp);string maxStr=str;ll maxNum=stol(maxStr);ll res=maxNum-minNum;return res;
}int main() {ll n;cin>>n;map<ll,int>mp; //用来存放某个值有没有被算出来过vector<ll>v; //存放所有算出来的结果,从第一个位置开始用v.push_back(0);for(ll i=1;; i++) { //第一次计算,第二次,第三次……n=compute(n); //给它一个数,它给你返回新的结果if(mp[n]) { //这个结果有过,那就可以结束了,进行输出吧for(int j=mp[n]; j<v.size(); j++) {cout<<v[j]<<' ';}break;} else { //这个结果没有过,存下来mp[n]=i;v.push_back(n);}}return 0;
}

【圆舞曲之数】CSP题目 C++实现相关推荐

  1. CSP题目:小明种苹果树

    小明种苹果树 CSP题目 题目描述:小明在他的果园里种了一些苹果树,这些苹果树排列成一个圆.为了保证苹果的品质,在种植过程中要进行疏果操作.为了更及时地完成疏果操作,小明会不时地检查每棵树的状态,根据 ...

  2. 京东笔试——神奇数 【题目描述】东东在一本古籍上看到有一种神奇数,如果能够将一个数的数字分成两组,其中一组数字的和 等于另一组数字的和,我们就将这个数称为神奇数。例如 242 就是一个神奇数,我们能够

    2 .神奇数 [ 题目描述]东东在一本古籍上看到有一种神奇数,如果能够将一个数的数字分成两组,其中一组数字的和 等于另一组数字的和,我们就将这个数称为神奇数.例如 242 就是一个神奇数,我们能够将这 ...

  3. 小米OJ12月常规赛“数数字”题目详解与SG函数SG定理个人理解

    本文前面的部分讲的是博弈论简单理论与SG函数SG定理的一些理解,后面对小米OJ赛题做详细剖析,最后给出代码的详细解读. 目录 博弈论 P-Position与N-Position SG函数与SG定理 S ...

  4. CSP题目:跳一跳小游戏

    CSP 题目 问题描述:近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱. 简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束. 如果跳到了方块上,但没有跳 ...

  5. 2023 CSP 题目大意还原(2月4号考的)

    2023 CSP 题目大意还原(2月4号) CSP-J 2023 CSP 题目大意还原(2月4号) 一些没用的话 T1 (呃...具体名字忘了) 题目大意 输入格式 输出格式 提示 样例 样例输入1 ...

  6. 在数组中找重复数、只出现一次的数或丢失数的题目(Leetcode题解-Python语言)

    在一维数组中的考察中,最常见的就是找出数组中的重复数.只出现一次的数或者丢失(消失)数等等. 一般来说,首先想到的就是用哈希表(集合)来记录出现过的数,基本所有的题都可以用集合来做,而技巧性在于有时可 ...

  7. 丑数_题目1214:丑数

    //思路确实很巧,一般情况下很难想出来 题目描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求 ...

  8. 回文数系列题目(经典算法)

    回文数 时间限制:1000 ms  |  内存限制:65535 KB 难度:0 描述 请寻找并输出1至1000000之间的数m,它满足m.m^2和m^3均为回文数.回文数大家都知道吧,就是各位数字左右 ...

  9. 10次机会 js 猜数_题目:(由计算机产生一个1~100的随机数,然后键入猜想数,最多猜10次跳出)请问大神们这个代码哪错了?...

    #include #include #include int main(int argc, char *argv[]) { int x,y,z=0; srand(time(NULL)); while( ...

最新文章

  1. 5个常用Java代码混淆器 助你保护你的代码
  2. 安装java过程_Java的安装过程
  3. Tomcat - Tomcat安装
  4. WinAPI【消息及相关结构体】
  5. android contentresolver 批量,Android之使用ContentResolver对通信录中的数据进行简单操作...
  6. python 干什么工作具有明显优势-为什么这么多人学Python?Python在就业上有什么优势?...
  7. facet与compiler不匹配
  8. 20135202闫佳歆——信息安全系统设计基础第七周学习总结
  9. android极光富媒体推送,极光推送如何在android客户端接收富媒体
  10. 小米编程真题:风口的猪-中国牛市
  11. 桌面客户端框架技术选型
  12. 五年Android开发大厂面经总结,吐血整理2022Android面试题合集(符解析)你确定不看看?
  13. 同一篇Word文档设置多个不同的页眉页脚
  14. 使用keil安装目录下的相关驱动进行安装
  15. spring切面接口ResponseBodyAdvice的分析和使用
  16. 五笔中词组的输入技巧
  17. 杰理ac18芯片_杰理科技推出:「梧桐」系列双模音视频 AIoT 芯片
  18. 【计算机毕业设计】jsp+mysql 基于SSM的儿童疫苗接种管理系统(可改为新冠疫苗)
  19. 这所211大学计算机学院全面改考408!中国地质大学(武汉)
  20. 非谓语动词to do做主语

热门文章

  1. ASP.NET下利用HttpModule实现简体中文向繁体中文的自动转换
  2. 环氧树脂在物联网设备 PCB 制造中的多种作用
  3. Neo4j使用系列4
  4. python - 作业12:鼠标绘图(附代码)
  5. 赵丽颖人生第一次演讲——我小小的英雄主义,用行动证明坚持的意义
  6. 0pp0a1支持html吗,OPPO A1配置怎么样 OPPO A1值得买吗
  7. html div 不要超出,css怎么设置div超出不换行?
  8. EasyFogofWar 简单战争迷雾系统 unity3d插件 使用教程
  9. 数组转换为json输出
  10. 实体店借力整合让客户倍增,掌握了这个诀窍,你的生意不再难做!