zoukankan      html  css  js  c++  java
  • 51nod 2020 排序相减

    “排序相减”操作是指对于任意一个四位数n,将四个数字分别进行顺序排序和逆序排序,得到两个数取相减后结果的绝对值n1,然后继续将n1中的四个数字进行顺序排序和逆序排序,得到两个数取相减后结果的绝对值n2,以此类推,最后总会得到一个数字黑洞,无法跳出。

    例如:样例2中4176 = 6532 - 2356

     

    输入

    第一行输入一个整数T,表示数据组数(1<T<10000);
    第二行输入一个正整数n(1000<=n<=9999)和一个正整数k(1<=k<=100),表示操作次数;

    输出

    对于每组数据,输出对于开始的数据n在第k次“排序相减”后结果绝对值。

    输入样例

    2
    1234 2
    3562 1

    输出样例

    8352
    4176

    模拟
    代码:
    #include <iostream>
    #include <cstdlib>
    #include <cstdio>
    #include <algorithm>
    
    using namespace std;
    int t,n,k;
    int deal(int d) {
        int dd = d;
        int a[4];
        for(int i = 0;i < 4;i ++) {
            a[i] = d % 10;
            d /= 10;
        }
        sort(a,a + 4);
        int num = 0;
        for(int i = 0;i < 4;i ++) {
            num = num * 10 + a[3 - i] - a[i];
        }
        if(num == dd) k = 0;
        return num;
    }
    int main() {
        scanf("%d",&t);
        while(t --) {
            scanf("%d %d",&n,&k);
            while(k --) n = deal(n);
            printf("%d
    ",n);
        }
    }
  • 相关阅读:
    C#:将空间数据加载到树视图控件
    C# 常见错误
    C#:Application操作(待补充)
    C#:XML操作(简单)
    C#:xml操作(待补充)
    C#:消息框
    C#:数学运算(待补充)
    C#:Ini文件操作(待补充)
    C#:文件操作(待补充)
    2015河南省农村拆迁赔偿流程
  • 原文地址:https://www.cnblogs.com/8023spz/p/10817870.html
Copyright © 2011-2022 走看看