PAT乙级(Basic Level)真题 1009.数字黑洞
来源:互联网 发布:aja system test mac 编辑:程序博客网 时间:2024/04/30 01:15
题目地址
点击打开链接
解题思路
数字按位拆分重组,循环做差。
注意打印的所有数字都要保证是4位!
PS.被大神说了,我再也不暴力求解了,以后都用循环。。。
AC代码如下:
#include <iostream>#include <algorithm>using namespace std;bool cmp( int a,int b ){ return a>b;}/*数组存放各位数,以保证打印出的数字是四位*/int s[4];void trans( int n ){ for( int i=3;i>=0;--i ){ s[i] = n%10; n /= 10; }}int main(){ int n; cin>>n; int a[4];//存放差的各位数 int result = n; while( 1 ){//不能用while(result!=6174),因为输入6174也需要打印一遍做差过程 for( int i=3;i>=0;--i ){ a[i] = result%10; result /= 10; } sort( a,a+4,cmp ); int n1 = a[0]*1000+a[1]*100+a[2]*10+a[3]; int n2 = a[0]+a[1]*10+a[2]*100+a[3]*1000; result = n1 - n2; trans(n1); for( int i=0;i<4;++i ) cout<<s[i]; cout<<" - "; trans(n2); for( int i=0;i<4;++i ) cout<<s[i]; cout<<" = "; trans(result); for( int i=0;i<4;++i ) cout<<s[i]; cout<<endl; if( result==6174 || ( a[0]==a[1] && a[1]==a[2] && a[2]==a[3] ) ) break; } return 0;}
0 0
- PAT乙级(Basic Level)真题 1009.数字黑洞
- 【PAT 乙级(Basic Level)】数字黑洞
- pat乙级真题--1019. 数字黑洞
- PAT乙级(Basic Level)真题1001
- PAT乙级(Basic Level)真题1002
- PAT乙级(Basic Level)真题1003
- PAT乙级(Basic Level)真题1004
- PAT乙级(Basic Level)真题 >月饼
- PAT乙级(Basic Level)真题 >人口普查
- PAT乙级(Basic Level)真题
- PAT乙级(Basic Level)真题 >有几个PAT
- 1019. 数字黑洞 (20)-PAT乙级真题
- 1019. 数字黑洞 (20) PAT乙级真题
- PAT (Basic Level)1019. 数字黑洞
- PAT BASIC LEVEL 1019. 数字黑洞 (20)
- PAT(Basic Level)_1019_数字黑洞
- PAT乙级(Basic Level)真题 1007.A除以B
- PAT乙级(Basic Level)真题 1010.月饼
- JobScheduler
- iOS 设置字体颜色和多种字体
- 操作系统之——处理机(1)处理机调度
- zookeeper-03-常用配置和四字命令
- [nodejs]exports和module.exports
- PAT乙级(Basic Level)真题 1009.数字黑洞
- Linux 的ACL的使用
- java中串的比较方式
- [TL-WVR450A] 手机如何制作及推送广告?
- matlab自带滤波器函数小结(图像处理)
- Linux路由网关下查看客户端IP的实际流量
- 解决win10启动登录后出现错误画面
- C#文本框允许使用ctrl+A
- Emacs官方中文简易教程