5153. 删除

news/2024/7/3 9:13:29

题目:

样例1:

输入
3454

输出
YES
344

 样例2:

输入
10

输出
YES
0

 样例3:

输入
111111

输出
NO

思路:

        这道题就三个条件

关键条件是  能够被 8 整除。    而能被 8 整除的有一个重要的性质是 

能够被 8 整除的重要性质
能被8整除的数的特征是它的末三位是0、8、16、24、32、40、48、56、64、72、80、88、96中的一个
这个特征是由能被2整除和能被4整除的数的特征推导出来的。掌握了这个特征,我们就可以很方便地判断一个数能否被8
整除了。

即看整个数中的 末三位是否可以被 8 整除,然后这是个不计删除个数,所以我们只要找到这些数是否在 num 里面即可。

代码详解如下:

#include <iostream>
#include <unordered_map>
#define endl '\n'
#define YES puts("YES")
#define NO puts("NO")
#define umap unordered_map
#pragma GCC optimize(3,"Ofast","inline")
#define ___G std::ios::sync_with_stdio(false),cin.tie(0), cout.tie(0)
using namespace std;
const int N = 2e6 + 10,MOD = 998244353;
string num;

// 寻找满足末3位能够被 8 整除的数,是否在 num 里面
inline bool FindAns(string &ans)
{
	int n = ans.size(),idx = 0;
	
	// 循环寻找
	for(auto i : num)
	{
		if(i == ans[idx]) ++idx;
		if(idx == n) return true;
	}
	
	return false;
}
inline void solve()
{
	string ans;
	
	getline(cin,num);
	
	// 由于不计删除个数,所以我们找到 末三位 可以被8整除 的数字计科
	// 获取在 末三位 以内的数字可以被 8 整除的数
	// i += 8 就可以满足被 8 整除
	for(int i = 0;to_string(i).size() <= 3;i += 8)
	{
		// 获取该性质的数字
		ans = to_string(i);
		
		// 开始判断是否是答案
		if(FindAns(ans))
		{
			cout << "YES" << endl << ans << endl;
			return ;
		}
	}
	cout << "NO" << endl;
}


int main()
{
//	freopen("a.txt", "r", stdin);
	___G;
	int _t = 1;
//	cin >> _t;
	while (_t--)
	{
		solve();
	}

	return 0;
}

最后提交:


http://lihuaxi.xjx100.cn/news/1577224.html

相关文章

CDS(一)

Core Data Services 核心数据服务 DDL 定义Query Language 查询DCL 控制&#xff08;权限相关&#xff09;model&#xff0c;从语义层获取数据open SQL 访问CDS viewCDS权限定义,集成旧的权限概念扩展native SQL扩展SQL建模和声明 ABAP ViewCDS View支持所有数据库是是支持查询…

MySQL - SQL聚合函数(查询操作 二)

聚合函数作用&#xff1a;将一列数据作为一个整体&#xff0c;进行纵向计算 。 常见聚合函数&#xff1a; 函数 功能 count 统计数量 max 最大值 min 最小值 avg 平均值 sum …

人大金仓分析型数据库外部表(一)

目录 定义外部表 file://协议 gpfdist://协议 gpfdists:// 协议 s3:// 协议 外部表是数据库可以支持存储在数据库之外的数据的表。 您可以创建一个可读的外部表来从外部数据源读取数据&#xff0c;也可以创建一个可写的外部表以将数据写入外部数据源。 您可以像在常规数据…

【目标检测】——Gold-YOLO为啥能超过YOLOV8

华为 https://arxiv.org/pdf/2309.11331.pdf 文章的出发点&#xff1a;FPN中的信息传输问题 1. 简介 基于全局信息融合的概念&#xff0c;提出了一种新的收集和分发机制&#xff08;GD&#xff09;&#xff0c;用于在YOLO中进行有效的信息交换。通过全局融合多层特征并将全局信…

【VUE复习·3】@keyup.xxx 键盘事件触发函数(单按键 or 组合按键触发)

总览 1.keyup.xxx or keydown.xxx 单按键触发 2.组合按键触发 一、keyup.xxx or keydown.xxx 1.用法 在我们使用 keyup.enter 时&#xff0c;那么我们可以这样写&#xff1a; <div><input type"text" placeholder"按下回车键以确定..." keyu…

使用adb命令通过数据线操控Android手机设备屏幕

目录 第一步&#xff1a;下载并安装Android SDK Platform-Tools 第二步&#xff1a;启动adb并测试连接 第三步&#xff1a;操控手机 第一步&#xff1a;下载并安装Android SDK Platform-Tools 进入Android开发者网站上找到ADB工具包&#xff08;包含在Android SDK Platform…

苹果手机充电充不进去什么原因?尝试这些方法拯救!

虽然苹果手机价格比较昂贵&#xff0c;但也抵挡不了大家对它的喜爱与追捧。无论是在国内还是国外&#xff0c;苹果手机都拥有着十分庞大的用户群体。 一些使用过苹果手机的朋友表示&#xff0c;苹果手机耗电快并且还出现过充不进电的情况。那么&#xff0c;苹果手机充电充不进…

京东(JD)——利用人工智能实现自动零售

京东(JD)是中国最大的在线零售商之一&#xff0c;也是一家以高科技和人工智能物流而闻名的公司&#xff0c;其人工智能物流系统包括无人机交付系统、自动配送快递车以及机器人自动化配送中心。 京东一直致力于将机器人用于尽可能多地实现零售业务的物理自动化。 1.京东的人工智…