zoukankan      html  css  js  c++  java
  • 6174问题

    /*--------6174问题-----------
    输入一个n位数,把所有数字从大到小排序得到a,从小到大得到b,然后用a-b替换原来这个数
    并且继续操作。1234 、4321-1234=3087、8730-378=8352、8532-2358=6174 
    样例输入:1234
    样例输出:1234->3087->8352->6074->6174
    --------------------------------------------------*/ 
    #include<iostream>
    using namespace std;
    int w[4];
    void paixv(int *a)
    {int i,m,b;
    for(i=0;i<3;i++)
      for(m=0;m<3-i;m++)
      if(a[m]>a[m+1])
      {b=a[m];
      a[m]=a[m+1];
      a[m+1]=b;}
       }
    void shuzi(int a)
    {for(int i=0;i<4;i++)
    {w[i]=a%10;
    a=a/10;}
    }
    
    int main()
    {int a,m,n,q;
    cin>>a;
    cout<<a;
    while(1)
    {n=a;
    shuzi(a);
    paixv(w);
    m=w[3]*1000+w[2]*100+w[1]*10+w[0];
    q=w[0]*1000+w[1]*100+w[2]*10+w[3];
    a=m-q;
    if(a==n)
    break;
    else
    cout<<"->"<<a;
    
    }
    return 0;
    }
    
    

  • 相关阅读:
    分答是什么?
    判定表
    总结
    周结
    第五周周结
    周结
    一周总结(18周)
    一周总结(17周)
    一周总结(16周)
    一周总结(15周)
  • 原文地址:https://www.cnblogs.com/oversea201405/p/3767045.html
Copyright © 2011-2022 走看看