zoukankan      html  css  js  c++  java
  • 递归--数字黑洞--蓝桥杯

    问题描述
      任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律:
      1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;
      2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数中含有0,则得到的数不足四位);
      3)求两个数的差,得到一个新的四位数(高位零保留)。
      重复以上过程,最后一定会得到的结果是6174。
      比如:4312 3087 8352 6174,经过三次变换,得到6174
    输入格式
      一个四位整数,输入保证四位数字不全相同
    输出格式
      一个整数,表示这个数字经过多少次变换能得到6174
    样例输入
    4312
    样例输出
    3
    

      (1)非递归的办法

     1 #include <iostream>
     2 #include <algorithm>
     3 using namespace std;
     4 int ans=0;
     5 //void dfs()
     6 int main()
     7 {
     8     int a;
     9     int b[4];
    10     int m;
    11     int n;
    12     cin>>a;
    13     while(a!=6174)
    14     {
    15     b[0]=a%10;
    16     b[1]=a%100/10;
    17     b[2]=a%1000/100;
    18     b[3]=a/1000;
    19     sort(b,b+4);//从大到小 
    20     n=b[0]*1000+b[1]*100+b[2]*10+b[3];
    21     m=b[0]*1+b[1]*10+b[2]*100+b[3]*1000;
    22    /* for(int i=0;i<4;i++)
    23     {
    24         cout<<b[i]<<endl;
    25     }
    26     cout<<"max  "<<m<<endl;
    27     cout<<"min  "<<n<<endl;*/
    28     a=m-n;
    29     ans++;    
    30 //    cout<<"jia wei e"<<a<<endl;
    31     }
    32    cout<<ans;
    33     return 0;
    34 }

    (2)递归的办法

     1 #include <iostream>
     2 #include <algorithm>
     3 using namespace std;
     4 int ans=0;
     5 int b[4];
     6 void dfs(int a)
     7 {
     8      int m;
     9     int n;
    10     if(a==6174){
    11         return ;
    12     }
    13     else{
    14     b[0]=a%10;
    15     b[1]=a%100/10;
    16     b[2]=a%1000/100;
    17     b[3]=a/1000;
    18     sort(b,b+4);//从大到小 
    19     n=b[0]*1000+b[1]*100+b[2]*10+b[3];
    20     m=b[0]*1+b[1]*10+b[2]*100+b[3]*1000;
    21     a=m-n;
    22     ans++;    
    23     dfs(a);
    24     }
    25     
    26 }
    27 int main()
    28 {
    29     int a;
    30     cin>>a;
    31     dfs(a);
    32    cout<<ans;
    33     return 0;
    34 }
  • 相关阅读:
    FFT-C语言
    C语言解析WAV音频文件
    图基(Tukey)检验
    方差分析中均值比较的方法
    模拟信号采样过程
    FS,FT,DFS,DTFT,DFT,FFT的联系和区别
    枚举enum类型
    样本概率统计
    宏和内联函数
    变量的生存期和存储分配
  • 原文地址:https://www.cnblogs.com/jweie/p/8372189.html
Copyright © 2011-2022 走看看