#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h> void decline(int a[])
{
int temp = 0;
for (int i = 0; i < 3; i++)
{
for (int j = i + 1; j < 4; j++)
{
if (a[i] < a[j])
{
temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
}
void up(int a[])
{
int temp = 0;
for (int i = 0; i < 3; i++)
{
for (int j = i + 1; j < 4; j++)
{
if (a[i] > a[j])
{
temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
}
void jian(int a[], int b[], int c[])
{
for (int i = 3; i >= 0; i--)
{
if (a[i] - b[i] >= 0)
{
c[i] = a[i] - b[i];
}
else
{
c[i] = a[i] + 10 - b[i];
if (i != 0)
{
a[i - 1] = a[i - 1] - 1;
}
}
}
}
int main()
{
int n;
scanf("%d", &n);
int num[4] = {0};
int i = 3;
int num1[4] = {0};
int num2[4] = {0};
int num3[4] = {0};
int temp1[4] = {0};
int temp2[4] = {0};
while (n != 0)
{
num[i--] = n % 10;
n = n / 10;
}
if (num[0] == num[1] && num[0] == num[2] && num[0] == num[3])
{
printf("%d%d%d%d - %d%d%d%d = 0000", num[0], num[1], num[2], num[3], num[0], num[1], num[2], num[3]);
return 0;
}
for (int i = 0; i < 4; i++)
{
num3[i] = num[i];
} do
{
decline(num3);
for (int i = 0; i < 4; i++)
{
num1[i] = num3[i];
}
up(num3);
for (int i = 0; i < 4; i++)
{
num2[i] = num3[i];
}
for (int i = 0; i < 4; i++)
{
temp1[i] = num1[i];
temp2[i] = num2[i];
}
jian(temp1, temp2, num3);
printf("%d%d%d%d - %d%d%d%d = %d%d%d%d\n", num1[0], num1[1], num1[2], num1[3], num2[0], num2[1], num2[2], num2[3], num3[0], num3[1], num3[2], num3[3]);
} while (num3[0] != 6 || num3[1] != 1 || num3[2] != 7 || num3[3] != 4);
return 0;
}

感觉写得好复杂啊

pat乙级 1019 数字黑洞的更多相关文章

  1. PAT乙级 1019. 数字黑洞 (20)

    1019. 数字黑洞 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定任一个各位数字不完全相同的4位 ...

  2. PAT 乙级 1019 数字黑洞 (20) C++版

    1019. 数字黑洞 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定任一个各位数字不完全相同的4位 ...

  3. PAT 乙级 1019.数字黑洞 C++/Java

    题目来源 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有 ...

  4. PAT(B) 1019 数字黑洞(Java)

    题目链接:1019 数字黑洞 (20 point(s)) 分析 输入正整数n后,将n转成int型数组nArr[4] 用Arrays.sort(int[] a)方法将数组nArr非递减排序 很显然,非递 ...

  5. 【PAT】1019 数字黑洞 (20)(20 分)

    1019 数字黑洞 (20)(20 分) 给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字.一直重复这样做, ...

  6. PAT Basic 1019 数字黑洞 (20 分)

    给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有“数字黑洞 ...

  7. 牛客网 PAT 算法历年真题 1009 : 1019. 数字黑洞 (20)

    1019. 数字黑洞 (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 给定任一个各位数字不完全相同的4 ...

  8. PAT 乙级 1019

    题目 题目地址:PAT 乙级 1019 思路 本题没有考虑到小于1000的情况,当小于1000的时需要给vector的向量中推入0,直到向量中有四位数字,之后再进行排序并进行相关计算 代码 #incl ...

  9. PAT-乙级-1019. 数字黑洞 (20)

    1019. 数字黑洞 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定任一个各位数字不完全相同的4位 ...

  10. PAT乙级1019

    1019 数字黑洞 (20 分)   给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直 ...

随机推荐

  1. express 为所有路由添加 405 method not allowd 响应

    背景知识 HTTP Status Code 405 405 Method not allowed The resource was requested using a method that is n ...

  2. 使用 SmartIDE 开发golang项目

    目录 概述 架构 开发视图 快速开始 安装 SmartIDE CLI 环境 启动 创建环境 安装工具 调试 基本调试 Start 命令调试 很荣幸在去年加入到 SmartIDE 产品组,从事开发工作, ...

  3. JavaScript中的防抖与节流-图文版

    01.防抖还是节流 防抖 与 节流 目的都是避免一定时间内,大量重复的操作造成的性能损耗.因此原理也类似,都是阻止过多的事件执行,只保留一部分来执行.适用场景略有不同,也有交叉,动手练习一遍就懂了. ...

  4. Django TypeError at /login/ 'bool' object is not callable

    代码: def login(request): if request.POST: username = request.POST.get('username') password = request. ...

  5. 比Sqoop功能更加强大开源数据同步工具DataX实战

    @ 目录 概述 定义 与Sqoop对比 框架设计 支持插件 核心架构 核心优势 部署 基础环境 安装 从stream读取数据并打印到控制台 读取MySQL写入HDFS 读取HDFS写入MySQL 执行 ...

  6. 分享自己亲测过的Visualstudio 2019中开发Typescript时,设置自动编译生成js,无需手工运行命令生成的方法。

    步骤1)右键web项目,添加 tsconfig.json文件. 步骤2)确保配置如下,编译版本可自行设置,这里主要关注编译目标目录和自动编译设置: { "compileOnSave" ...

  7. [机器学习] PCA (主成分分析)详解

    转载于https://my.oschina.net/gujianhan/blog/225241 一.简介 PCA(Principal Components Analysis)即主成分分析,是图像处理中 ...

  8. python进阶之路5之流程控制(垃圾回收机制)

    垃圾回收机制 """ 有一些语言,内存空间的申请和释放都需要程序员自己写代码才可以完成 但是python却不需要 通过垃圾回收机制自动管理 ""&qu ...

  9. 数位排序【第十三届蓝桥杯省赛C++C组】

    数位排序 小蓝对一个数的数位之和很感兴趣,今天他要按照数位之和给数排序. 当两个数各个数位之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面. 例如,\(2022\) 排在 \( ...

  10. .NetCore下基于FreeRedis实现的Redis6.0客户端缓存之缓存键条件优雅过滤

    前言 众所周知内存缓存(MemoryCache)数据是从内存中获取,性能表现上是最优的,但是内存缓存有一个缺点就是不支持分布式,数据在各个部署节点上各存一份,每份缓存的过期时间不一致,会导致幻读等各种 ...