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;
}

全部评论

相关推荐

肖先生~:那年秋招闯进一位少年,人们都清楚:成功对他来说只是时间问题
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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