1019 数字黑洞 P194 算法笔记下

//https://pintia.cn/problem-sets/994805260223102976/problems/994805302786899968
//1019 数字黑洞 P194 算法笔记下
#include <iostream>
#include <algorithm>
using namespace std;

void divide(int N,int a[]){
    for(int i=0;i<=3;++i){
        a[i] = N%10;
        N /= 10;
    }
}
void sorted(int N,int r[]){
    int a[4];
    int power;
    r[0] = r[1] = 0;
    divide(N,a);
    sort(a,a+4);
    power = 1;
    for(int i=0;i<=3;++i){
        r[0] += a[i]*power;//decrease
        power *= 10;
    }
    power = 1;
    for(int i=3;i>=0;--i){
        r[1] += a[i]*power;//increase
        power *= 10;
    }
}

int main(){
    int N;
    int arr[4],results[2];
    cin>>N;
    divide(N,arr);
    int flag = 0;
    for(int j=1;j<=3;++j){
        if(arr[j] != arr[j-1]) flag = 1;
    }
    if(flag == 0) printf("%04d - %04d = 0000\n",N,N);
    else{
        do{
            sorted(N,results);
            N = results[0] - results[1];
            printf("%04d - %04d = %04d\n",results[0],results[1],N);
        }while(N != 6174);
    }

    return 0;
}

全部评论

相关推荐

10-29 15:51
嘉应学院 Java
后端转测开第一人:你把简历的学历改成北京交通大学 去海投1000份发现基本还是没面试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务