zoukankan      html  css  js  c++  java
  • 1019. 数字黑洞

    题目截图:

    思路:

      简单模拟。详解见另一篇博客

    代码:

     1 /*
     2     1019. 数字黑洞
     3 */
     4 
     5 #include <stdio.h>
     6 #include <string.h>
     7 #include <math.h>
     8 #include <stdlib.h>
     9 #include <time.h>
    10 
    11 int cmp1(const void* a, const void* b) {    // 从小到大排序 
    12     return *(int*)a-*(int*)b;
    13 }
    14 
    15 int cmp2(const void* a, const void* b) {    // 从大到小排序 
    16     return *(int*)b-*(int*)a;
    17 }
    18 
    19 void to_array(int n, int num[]) {    // int 型整数转换成 int 型数组
    20     int i;
    21     for(i=0; i<4; ++i) {
    22         num[i] = n%10;
    23         n /= 10;
    24     }
    25 }
    26 
    27 int to_number(int num[]) {    // int 型数组转换成 int 型整数
    28     int i, sum = 0;
    29     for(i=0; i<4; ++i) {
    30         sum = sum*10 + num[i];
    31     }
    32     return sum;
    33 }
    34 
    35 int main() {
    36     int n, MAX, MIN; // int 型整数,最大值,最小值 
    37     scanf("%d", &n);
    38     int num[4];        // int 型数组 
    39     while(1) {
    40         to_array(n, num);
    41         qsort(num, 4, sizeof(int), cmp1);    // 递增排序 
    42         MIN = to_number(num);    // 递增序列转为最小值
    43         qsort(num, 4, sizeof(int), cmp2);    // 递减排序
    44         MAX = to_number(num);    // 递减序列转为最大值
    45         n = MAX - MIN;        // 得到下一个数
    46         // 格式化输出 
    47         printf("%04d - %04d = %04d
    ", MAX, MIN, n);
    48         if(n==0 || n==6174)    break; 
    49     } 
    50 
    51     return 0;
    52 }
  • 相关阅读:
    配置gem5-gpu模拟环境
    如何避免并发情况下的重复提交
    避免重复执行
    java线程池
    java动态代理
    Java 静态代理
    Java 静态代理和动态代理
    Spring的事务传播性
    mybatis配置(Configuration.xml)详解
    mybati之parameterType传递多个参数
  • 原文地址:https://www.cnblogs.com/coderJiebao/p/PAT1019.html
Copyright © 2011-2022 走看看