数字圈题解

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

先来看题目

题目描述

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

数字 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;
}
相关推荐
大怪v2 小时前
前端:人工智能?我也会啊!来个花活,😎😎😎“自动驾驶”整起!
前端·javascript·算法
惯导马工4 小时前
【论文导读】ORB-SLAM3:An Accurate Open-Source Library for Visual, Visual-Inertial and
深度学习·算法
骑自行车的码农5 小时前
【React用到的一些算法】游标和栈
算法·react.js
博笙困了6 小时前
AcWing学习——双指针算法
c++·算法
moonlifesudo6 小时前
322:零钱兑换(三种方法)
算法
NAGNIP1 天前
大模型框架性能优化策略:延迟、吞吐量与成本权衡
算法
美团技术团队1 天前
LongCat-Flash:如何使用 SGLang 部署美团 Agentic 模型
人工智能·算法
Fanxt_Ja1 天前
【LeetCode】算法详解#15 ---环形链表II
数据结构·算法·leetcode·链表
侃侃_天下1 天前
最终的信号类
开发语言·c++·算法
茉莉玫瑰花茶1 天前
算法 --- 字符串
算法