PTA:7-48 黑洞数 (20分)--加解析
7-48 黑洞数 (20分)
黑洞数也称为陷阱数,又称“Kaprekar问题”,是一类具有奇特转换特性的数。
任何一个各位数字不全相同的三位数,经有限次“重排求差”操作,总会得到495。最后所得的495即为三位黑洞数。所谓“重排求差”操作即组成该数的数字重排后的最大数减去重排后的最小数。(6174为四位黑洞数。)
例如,对三位数207:
第1次重排求差得:720 - 27 = 693;
第2次重排求差得:963 - 369 = 594;
第3次重排求差得:954 - 459 = 495;
以后会停留在495这一黑洞数。如果三位数的3个数字全相同,一次转换后即为0。
任意输入一个三位数,编程给出重排求差的过程。
输入格式:
输入在一行中给出一个三位数。
输出格式:
按照以下格式输出重排求差的过程:
序号: 数字重排后的最大数 - 重排后的最小数 = 差值
序号从1开始,直到495出现在等号右边为止。
输入样例:
123
输出样例:
1: 321 - 123 = 198
2: 981 - 189 = 792
3: 972 - 279 = 693
4: 963 - 369 = 594
5: 954 - 459 = 495
思路
将数的每位数分离出来,组成最大值和最小值,进行求差判断就行。
需要注意的是,当输入三个数相同时,输出应该为0,然后程序结束。
输入为495本身时,也要进行一次输出。具体代码如下:
#include<bits/stdc++.h>
using namespace std;int f(int x){int a[3];a[0]=x/100;a[1]=x/10%10;a[2]=x%10;sort(a, a+3);int maxx = a[2]*100+a[1]*10+a[0];int minn = a[0]*100+a[1]*10+a[2];cout << maxx << " - " << minn << " = ";return maxx-minn;
}int main(){int n;cin >> n;for(int i=1; n!=495||i==1; i++){cout << i << ": ";n = f(n);cout << n << endl;if(!n) return 0;}return 0;
}
欢迎大家批评改正!让我们共同进步,加油!!!
PTA:7-48 黑洞数 (20分)--加解析相关推荐
- 7-160 找完数 (20 分)
7-160 找完数 (20 分) 所谓完数就是该数恰好等于除自身外的因子之和.例如:6=1+2+3,其中1.2.3为6的因子.本题要求编写程序,找出任意两正整数m和n之间的所有完数. 输入格式: 输入 ...
- PTA 7-9 叶节点求和 (20 分)
PTA 7-9 叶节点求和 (20 分) 对给定的有N个节点(N>=0)的二叉树,求叶节点元素之和 没有当过父节点的节点都是叶子节点 #include <iostream> #inc ...
- C++学习之路 | PTA乙级—— 1012 数字分类 (20分)(精简)
1012 数字分类 (20分) 给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A 1 = 能被 5 整除的数字中所有偶数的和: A 2 = 将被 5 除后余 1 ...
- C++学习之路 | PTA乙级—— 1048 数字加密 (20 分)(精简)
1048 数字加密 (20 分) 本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 ...
- C++学习之路 | PTA乙级—— 1034 有理数四则运算 (20 分)(精简)
1034 有理数四则运算 (20 分) 本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是 ...
- C++学习之路 | PTA乙级—— 1027 打印沙漏 (20 分)(精简)
1027 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 所谓"沙漏形状",是指每行输出奇数个 ...
- C++学习之路 | PTA乙级—— 1007 素数对猜想 (20分)(精简)
1007 素数对猜想 (20分) 让我们定义d n 为:d n =p n+1 −p n ,其中p i 是第i个素数.显然有d 1 =1,且对于n> ...
- PTA练习题1027 打印沙漏 (20分)
1027 打印沙漏 (20分) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 所谓"沙漏形状",是指每行输出奇数个符 ...
- [PTA] 7-23 币值转换(20 分)
7-23 币值转换(20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简 ...
最新文章
- form 提交多个对象及springMVC接收
- Tensorflow官方文档---起步 MNIST示例
- 苹果6发布时间_苹果11月秋季发布会直播时间几点 App Store提前爆大招
- FTP多路径递归下载
- PHP使用echo输出标签设置CSS样式问题
- 【数字信号】基于matlab GUI简易电子琴(英文版)【含Matlab源码 873期】
- 10.Qt元素QTreeWidgetItem
- mac 不显示 外接屏幕_macbook pro 外接显示器显示不完全
- Windows 10系统安装AutoCAD 2007
- 麻将判断胡牌 java_麻将胡牌逻辑 java
- 李一男复出,能否完成一次“永不言败”的创业?
- Windows Xp SP3 chs 简体中文版下载
- ie11浏览器For win7 x64 官方下载 V9600 官方版
- 问题:微信小程序开发之 --- app.js文件介绍
- C++学习笔记(九)——运算符重载
- 文件损坏打不开怎么办?excel文件修复,看看这些解决办法
- Microsoft Office Word使用技巧(各种报告论文排版可能需要的小技巧)
- python在家创业项目_适合在家创业的项目有哪些 八大项目人人可做
- 【推荐系统论文精读系列】(五)--Neural Collaborative Filtering
- JSP encodeURI() 函数