#include<iostream>
#include<time.h>
using namespace std;
int number(int number);
int blackHoleNumber(int number);
int getNumber(int number)
{
static counter = 0;
int value;
int i = 0,j,temp;
int maxNumber = 1000,minNumber = 1000;
int digi[4];
while( number != 0 )
{
digi[i] = number%10;
number = number/10;
i++;
}
for ( j = 0; j < 5; j++ )
{
for ( i = 0; i < 5 - j; i++)
{
if ( digi[i] > digi[i+1] )
{
temp = digi [i];
digi[i] = digi[i+1];
digi[i+1] = temp;
}
}
}
minNumber = digi[0]*1000 + digi[1]*100 + digi[2]*10 + digi[3] ;
maxNumber = digi[3]*1000 + digi[2]*100 + digi[1]*10 + digi[0] ;
value = maxNumber - minNumber;
if (counter % 2 == 0)
{
cout << "第" << (counter + 2)/2 << "次计算:\n";
cout << "最大数为: " << maxNumber << "\n最小数为:" << minNumber << endl;
cout << "差值为: " << value << endl;
cout << "=======================" << endl;
}
++counter;
return value;
}
int blackHoleNumber(int number)
{
do
{
number = getNumber(number);
}
while(number != getNumber(number));
return number;
}
int main()
{
srand((unsigned)time(NULL));
int number = rand() % 10000;
cout << "产生的随机数为: "<< number << endl;
int value = blackHoleNumber(number);
cout << "黑洞数为: " << value << endl;
return 0;
}
