一个神奇的四位数-----6174(包括C++实现)

本文揭示了一个数学奇观,无论你输入任意四位数,通过特定的运算步骤,最终都能得到数字6174。并提供了一个C++程序验证此现象,深入探索数学奥秘。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     许多人会认为这个数没有什么特别的啊,的确,从表面上看不出什么的,这些数字再普通也不过了。但是有没有发现有这样一个奇特的现象:

    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;
}

    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值