打卡20

3.8黑洞数

 思路很简单,就把每个数存一下,排序,分别从大到小和从小到大算出来就可以了;

 

 

#include<bits/stdc++.h>
using namespace std;

int maxo(int a,int b,int c)
{
int m,mid,i;
m=max(a,max(b,c));
i=min(a,min(b,c));
mid=a+b+c-m-i;
return m*100+mid*10+i;
}
int mino(int a,int b,int c)
{
int m,mid,i;
m=max(a,max(b,c));
i=min(a,min(b,c));
mid=a+b+c-m-i;
return i*100+mid*10+m;
}
int main()
{
int i,k;
int hun,oct,data,ma,mi,j,h;
cout<<"输入三位数"<<endl;
cin>>i;
hun=i/100;data=i%10;
oct=i/100%10;
ma=maxo(hun,oct,data);
mi=mino(hun,oct,data);
j=ma-mi;
for(k=0;;k++)
{
h=j;//记录上一次的差
hun=i/100;data=i%10;
oct=i/100%10;
ma=maxo(hun,oct,data);
mi=mino(hun,oct,data);
j=ma-mi;
if(j==h)//最后两次的差相等
{
cout<<j<<endl;
break;
}
}

}

posted on 2023-05-09 11:07  临江柔  阅读(15)  评论(0编辑  收藏  举报