许多人会认为这个数没有什么特别的啊,的确,从表面上看不出什么的,这些数字再普通也不过了。但是有没有发现有这样一个奇特的现象:
7641-1467=6174
将它从大到小排列减去从小到大的排列会得到它本身,这也没有什么好稀奇的嘛!但是你如果拿任意一个四位数,你从大到小排列减去从小到大排列,并且不停地执行这个操作,你会惊奇地发现你最终也会得到6174.如:7586
8675-5678=3087
8730-378=8352
8532-2358=6174
对的,任何一个四位数都有这样的规律,可以试试!!!
下面我再给出它用C++程序的验证方法,你可以代任何的四位数用COMPUTER去验证它。
#include <iostream>
using namespace std;
void InsertSort(int a[],int n)
{
int i,j;
int temp;
for( i=0;i<n-1;i++)
{
temp=a[i+1];
j=i;
while(j>-1&&temp<=a[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=temp;
}
}
int Change(int a[4],bool b)
{
if(b==0)
{
return a[0]*1000+a[1]*100+a[2]*10+a[3];
}
else
return a[0]+a[1]*10+a[2]*100+a[3]*1000;
}
void GetEnchNum(int a[],int n,int m)
{
int fac=1,i;
for(i=1;i<m;i++)
{
fac=fac*10;
}
a[0]=n/fac;
n=n-a[0]*fac;
for(i=1;i<m;i++)
{
fac=fac/10;
a[i]=n/(fac);
n=n-a[i]*fac;
}
}
int main()
{
int n;
cout<<"Enter a four-digit:";
cin>>n;
while(n>=10000||n<999)
{
cout<<"Please enter it again:";
cin>>n;
}
while(n!=6174)
{
int a[4];
GetEnchNum(a, n,4);
InsertSort(a,4);
n=Change(a,1)-Change(a,0);
cout<<Change(a,1)<<"-"<<Change(a,0)<<"="<<n<<endl;
}
cout<<endl;
}