• 【NYOJ】[57]6174问题


    这里写图片描述
    用的家里的小破笔记本
    编译器好像还出了点问题
    所以用的在线编译器……
    在这里也是分享一下:
    Ideone.com

    这一题的思路是循环计数直到它和变化之后的数相同

    #include<stdio.h>
    #include<algorithm>
    using namespace std;
    int ex(int m) {
        int a[4];
        a[0]=m/1000;
        a[1]=(m/100)%10;
        a[2]=(m/10)%10;
        a[3]=m%10;
        sort(a,a+4);
        int sum1=a[3]*1000+a[2]*100+a[1]*10+a[0];
        int sum2=a[0]*1000+a[1]*100+a[2]*10+a[3];
        return sum1-sum2;
    }
    int main() {
        int T,m;
        scanf("%d",&T);
        while(T--) {
            scanf("%d",&m);
            int cnt=0;
            while(ex(m)!=m) {
                cnt++;
                m=ex(m);
            }
            printf("%d
    ",cnt+1);
        }
        return 0;
    }

    不过从标程来看
    似乎最终总是会变化成6174
    不得不说数学还是挺奇妙的
    (貌似以前听说过这个规律)
    思路还是一样的

    
    #include<iostream>
    #include<algorithm>
    #include<stdio.h>
    using namespace std;
    int main()
    {
        //freopen("1.txt","r",stdin);
        int k;
        cin>>k;
        while(k--)
        {
            int n,a[4],n1,n2;
            scanf("%d",&n);
            int s=1;
            while(n!=6174)
            {
                a[0]=n%10;
                a[3]=n/1000;
                a[1]=n/10%10;
                a[2]=n/100%10;
                sort(a,a+4);
                n1=1000*a[3]+100*a[2]+10*a[1]+a[0];
                n2=1000*a[0]+100*a[1]+10*a[2]+a[3];
                n=n1-n2;
                s++;
            }
            printf("%d
    ",s);
        }
    }        

    题目地址:【NYOJ】[57]6174问题

  • 相关阅读:
    hibernate10--命名查询
    mybatis13--2级缓存
    mybatis12--一级缓存
    hibernate09--连接查询
    hibernate08--OpenSessionInView
    mybatis11--多对多关联查询
    mybatis10--自连接多对一查询
    mybatis09--自连接一对多查询
    mybatis08--关联查询多对一
    Oracle job启动与关闭
  • 原文地址:https://www.cnblogs.com/BoilTask/p/12569890.html
Copyright © 2020-2023  润新知