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

    描述

    假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个 数,并且继续操作。例如,从1234出发,依次可以得到4321-1234=3087、8730-378=8352、8532-2358=6174,又回 到了它自己!现在要你写一个程序来判断一个四位数经过多少次这样的操作能出现循环,并且求出操作的次数

    比如输入1234执行顺序是1234->3087->8352->6174->6174,输出是4

    输入
    第一行输入n,代表有n组测试数据。
    接下来n行每行都写一个各位数字互不相同的四位数
    输出
    经过多少次上面描述的操作才能出现循环
    样例输入
    1
    1234
    样例输出
    4
     1 #include<stdio.h>
     2 int main( ) {
     3     int n, m, i, j, t, a[4], max, min, count;
     4     scanf("%d", &n);
     5     while(n--) {
     6         count = 1;
     7         scanf("%d",&m);
     8         while(m != 6174) {
     9             for(i = 0; i < 4; i ++) {
    10                 a[i] = m % 10;
    11                 m = m / 10;
    12             }
    13             for(i = 0; i < 4; i ++)
    14                 for(j = i + 1; j < 4; j ++)
    15                     if(a[i] < a[j]) {
    16                         t = a[i];
    17                         a[i] = a[j];
    18                         a[j] = t;
    19                     }
    20                     max = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
    21                     min = a[3] * 1000 + a[2] * 100 + a[1] * 10 + a[0];
    22                     m = max - min;
    23                     count ++;
    24         }
    25         printf("%d
    ", count);
    26     }
    27     return 0;
    28 }
    View Code
  • 相关阅读:
    文件的上传
    JSP基础知识
    AJAX
    Listener
    Filter(一)
    session
    网络爬虫(9)-xpath解析
    网络爬虫(8)-正则表达式
    网络爬虫(7)-beautifulSoup解析库
    网络爬虫(6)-Requests库
  • 原文地址:https://www.cnblogs.com/tong69/p/5779234.html
Copyright © 2011-2022 走看看