7-44 黑洞数 (20分)

7-44 黑洞数 (20分)

#include<cstdio>
#include<algorithm>
using namespace std;

bool cmp(int a,int b)
{
	return a>b;
}
void toarray(int n,int num[])//将n的每一位存到num数组中 
{
	for(int i=0;i<3;i++)
	{
		num[i]=n%10;
		n=n/10;
	}
}
int tonum(int num[])//将数组转为数字 
{
	int sum=0;
	for(int i=0;i<3;i++)
	{
		sum=sum*10+num[i];
	}
	return sum;
} 

int main()
{
	int n,max,min;
	int num[4];
	int count=1;
	scanf("%d",&n);
	while(1)
	{
		toarray(n,num);//将n转换成数组
		sort(num,num+3);//对数组进行从小到大排序
		min=tonum(num);
		sort(num,num+3,cmp);//对数组进行从大到小排序
		max=tonum(num);
		n=max-min;
	    printf("%d : %d - %d = %d\n", count++, max, min, n);
	    if(n==0||n==495)break;
	}
	 return 0;
}

此题类似于PAT中B1019或A1069

7-44 黑洞数 (20分)7-44 黑洞数 (20分) m n x j 发布了57 篇原创文章 · 获赞 0 · 访问量 419 私信 关注
上一篇:44 容器(三)——ArrayList索引相关方法


下一篇:MySQL5.6.44 1010-删除数据库时出错