51nod 2020 排序相减

来源:互联网 发布:淘宝网如何运营 编辑:程序博客网 时间:2024/06/05 05:16

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

 

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

Input
第一行输入一个整数T,表示数据组数(1<T<10000);第二行输入一个正整数n(1000<=n<=9999)和一个正整数k(1<=k<=100),表示操作次数;
Output
对于每组数据,输出对于开始的数据n在第k次“排序相减”后结果绝对值。
Input示例
21234 23562 1
Output示例
83524176
#include <iostream>#include <cstdio>#include <math.h>#include<algorithm>using namespace std;int a[5];int _s(){    int na1,na2,b;    na1=a[1]*1000+a[2]*100+a[3]*10+a[4];    na2=a[4]*1000+a[3]*100+a[2]*10+a[1];    //printf("%d %d",na1,na2);   b=fabs(na1-na2);    for(int i=4;i>=1;i--)        {            a[i]=b%10;            b/=10;        }return 0;}int main(){    int m,n,num;    scanf("%d",&n);    while(n--)    {        scanf("%d%d",&m,&num);        for(int i=4;i>=1;i--)        {            a[i]=m%10;            m/=10;        }        while(num--)        {            sort(&a[1],&a[4]+1);            _s();        }        int ans=a[1]*1000+a[2]*100+a[3]*10+a[4];        printf("%d\n",ans);    }    return 0;}
注意sort的区间是左闭右开~

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 故宫御花园图片 故宫御花园资料 故宫御花园作文 御景花园二手房 御华花园 天邑宏御花园 天御花园 御花园小区 御都花园 俊怡御景花园 御城花园 华府御园二手房 御花苑 御花苑二手房 东莞御花苑 御苑 华润御苑 御苑家园 观澜御苑 楚都御苑 深圳皇御苑 株洲恒大御苑 东湖御苑二手房 御苑家园二手房 济南恒大龙奥御苑 苗御堂祛斑效果怎么样 苗御堂祛痘 御茶园 中御元益生茶能减肥吗 御茶居 御茶水女子大学留学申请 申请御茶水女子大学 御茶水女子大学网站 御茶水女子大学招生 荣御府 石家庄荣盛御府 御荣府火锅 杭州绿都御景蓝湾 易县御景蓝湾 金山御景蓝湾 御蓝湾