欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PAT A1069 The Black Hole of Numbers (20分)

程序员文章站 2022-03-24 17:44:14
...

前言

传送门

正文

PAT A1069 The Black Hole of Numbers (20分)
参考题解

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
/*
题意:数字黑洞,要求给定一个四位数的整数N,输出该整数到达数字黑洞6174的
每一步计算过程,若该四位数的整数每一位都相同,则直接输出N-N=0000 ,这里可以
想到若res为0,那么反推n的每一位都是相同的数
 
思路:主要就是考察整型数与数组之间转换 
*/
int n,num[5];
bool cmp(int a,int b){
	return a>b;
}
//基本模板 
void intToArr(int n){
	int i=0; 
	do{//注意是逆序存储的 
		num[i++]=n%10;
		n/=10;
	}while(n!=0);
} 
int arrToInt(){
	int res=0;
	for(int i=0;i<4;i++){
		res=res*10+num[i]; 
	} 
	return res;
}
int main(){
	cin>>n;
	int a,b;
	while(n){
		intToArr(n);
		sort(num,num+4);
		a=arrToInt();
		sort(num,num+4,cmp);
		b=arrToInt();
		n=b-a;
		printf("%04d - %04d = %04d\n",b,a,n);
		if(n==6174)break;
	}
	return 0;
}