数字圈题解

大家好!今天我们来看一道题目,叫做数字圈。

先来看题目

题目描述

当我们写数字时会发现有些数字有封闭区域,有的数字没有封闭区域。

数字 0 有一个封闭区域,数字 1、2、 3 都没有封闭区域,数字 4 有一个封闭区域,数字 5 没有封闭区域,数字 6 有一个封闭区域,数字 7 没有 封闭区域,数字 8 有两个封闭区域,数字 9 有一个封闭区域。

现在你要构造一个最小的非负整数,使得它的各位数字的封闭区域的数量加起来的总和恰好等于 K。

输入格式

一个整数 K。 1 <= K <= 2500

输出格式

满足题意的最小的非负整数。

样例

输入数据 1

复制代码
40

Copy

输出数据 1

复制代码
88888888888888888888

Copy

输入数据 2

复制代码
1

Copy

输出数据 2

复制代码
0

Copy

输入数据 3

复制代码
2

Copy

输出数据 3

复制代码
8

思路很简单:

首先题目要求我们去满足情况的最小值,那解药先考虑位数问题,从题目之中可以的出只有数字8有两个封闭区,所以我们要尽量多用8,但有可能有特殊情况,比如:为1,就要输出1,然后退出程序;还有有余数的情况,剩下的就都用4即可。

代码实现:

复制代码
#include<iostream>
#include<fstream>
#include<algorithm>
#include<bits/stdc++.h>
using namespace std;
long long n,a[10000],k,l,m;
int main()
{
     cin>>m;
     if(m==1)
     {
        cout<<"0";
        return 0;
     }
     else
     {
        k=m/2;
        l=m%2;
        if(l>0)
        {
            cout<<"4";
        }
        for(int i=1;i<=k;i++)
        {
            cout<<"8";
        }
     }

    return 0;
}
相关推荐
再卷也是菜21 小时前
算法基础篇(12)Trie树
算法·字典树
小糯米60121 小时前
C++ 单调栈原理与模板
开发语言·c++·算法
常利兵21 小时前
Android 集合探秘:ArrayMap 与 SparseArray 的奇妙之旅
android·算法·哈希算法
滴滴答滴答答21 小时前
LeetCode Hot100 之 41 缺失的第一个正数
算法·leetcode·职场和发展
rgb2gray21 小时前
论文详解:基于POI与出租车轨迹的城市多中心结构静态-动态多重分形特征
人工智能·python·算法·机器学习·数据分析·可解释
Zarek枫煜21 小时前
[特殊字符]栈(Stack)原理详解 \+ Zig / C3 双语言实现
c语言·单片机·嵌入式硬件·算法
jz_ddk21 小时前
[实战] CIC滤波器设计与实现
人工智能·算法·机器学习·数字信号处理·cic滤波器
Sakinol#21 小时前
Leetcode Hot 100 ——多维动态规划
算法·leetcode·动态规划
XZXZZX21 小时前
ATCODER ABC 450 C题解
c++·算法·ccf csp
堕27421 小时前
JavaEE初阶——《多线程--. 多线程带来的的⻛险-线程安全 (重点)》
java·算法·java-ee