牛客33-tokitsukaze and Number Game(数论)

题目描述

tokitsukaze又在玩3ds上的小游戏了,现在她遇到了难关。
tokitsukaze得到了一个整数x,并被要求使用x的每一位上的数字重新排列,组成一个能被8整除的数,并且这个数尽可能大。
聪明的你们请帮帮可爱的tokitsukaze,如果无法组成被8整除的数,请输出-1。
保证输入不含前导0,输出也不能含前导0。

输入描述:

第一行包括一个正整数T(T<=1000),表示T组数据。
接下来T行,每一行包括一个整数x,(0≤x≤10^100)。

输出描述:

请输出用这些数字组成出能被8整除的最大的数,如果无法组成出能被8整除的数,请输出-1。

 

示例1

输入

2
666
1256

输出

-1
6512

一个数能否被8整除,若大于999,呢么后三位能整除8,呢么这个数字就能整除8

快速判断一个数能否被1、2、3、4、5、6、7、8、9、10、11、12、13、17、19、23等整除的规律总结:

https://blog.csdn.net/weixin_41183791/article/details/84887846

ac:

#include<bits/stdc++.h>
using namespace std;
int c[10]={0};
char str[1010]={0};struct node
{int num;int max2;int xc[10]={0};friend bool operator <(node a,node b){if(a.max2==b.max2)return a.num>b.num;else return a.max2<b.max2;}
}a[1000];int b[3]={0};int init()
{int n,m,x,j=1;a[0].num=0;   //别忘了000哦a[0].xc[0]=3;a[0].max2=0;for(int i=100;i<1000;i++){if(i%8==0){a[j].num=i;b[0]=i%10;b[1]=(i%100)/10;b[2]=i/100;a[j].xc[b[0]]++;a[j].xc[b[1]]++;a[j].xc[b[2]]++;sort(b,b+3,greater<int>());a[j].max2=b[0]*100+b[1]*10+b[2];j++;}}sort(a,a+j);return j;
}int gg[]={8,16,24,32,40,48,56,64,72,80,88,96};int main()
{int t;int j=init();scanf("%d",&t);while(t--){memset(str,0,sizeof(str));memset(c,0,sizeof(c));scanf("%s",&str);int len=strlen(str);if(len==1){if(str[0]-'0'==8)printf("8\n");else if(str[0]-'0'==0)printf("0\n");else printf("-1\n");}else if(len==2){int flag=0;int xx=(str[0]-'0')*10+str[1]-'0';int yy=str[0]-'0'+(str[1]-'0')*10;for(int i=11;i>=0;i--){if(xx==gg[i]||yy==gg[i]){flag=1;printf("%d\n",gg[i]);break;}}if(flag==0)printf("-1\n");}else{for(int i=0;i<len;i++)c[str[i]-'0']++;int sign=0;for(int i=0;i<j;i++){int flag=0;for(int k=0;k<10;k++){if(c[k]<a[i].xc[k]){flag=1;break;}}if(flag==0){for(int k=0;k<10;k++)c[k]-=a[i].xc[k];for(int k=10;k>=0;){if(c[k]>0){printf("%d",k);c[k]--;}else k--;}if(i==0)printf("000\n");else printf("%d\n",a[i].num);sign=1;break;}}if(sign==0)printf("-1\n");}}return 0;
}

 

转载于:https://www.cnblogs.com/wangtao971115/p/10358242.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手摸手,带你用vue撸后台 系列一(基础篇) - 掘金

完整项目地址&#xff1a;vue-element-admin 系列文章&#xff1a; 手摸手&#xff0c;带你用 vue 撸后台 系列一&#xff08;基础篇&#xff09;手摸手&#xff0c;带你用 vue 撸后台 系列二(登录权限篇)手摸手&#xff0c;带你用 vue 撸后台 系列三 (实战篇)手摸手&#xf…

21、python基础学习-new_three_menu

1 #!/usr/bin/env python2 #__author: hlc3 #date: 2019/5/294 5 menu {6 北京: {7 海淀: {8 五道口: {9 soho: {}, 10 网易: {}, 11 google: {} 12 }, 13 中关村: { 14 …

文献笔记(十六)

一、基本信息 标题&#xff1a;一种基于 C 语言访问 MySQL 数据库的研究 时间&#xff1a;2016 出版源&#xff1a;贵州轻工职业技术学院 领域分类&#xff1a;数据库与信息管理 作者&#xff1a;唐林 副教授&#xff0c; 研究方向&#xff1a; 计算机应用 二、研究背景 相关工…

webpack+vue+mui学习心得

引入mui 1.不需要npm安装; 直接从官方下载丢进来 2.那就是全局引用了; 没错,就是index.html里直接引入,当然也可以main.js引入,随意啦! so easy 3.找到webpack.base.conf.js,在module与plugins之间插入以下代码: 4.这样就可以在项目里面直接用了.然就是mui与vue-router及点…

[java设计模式简记] 观察者模式(Observer-Pattern)

观察者模式(Observer-Pattern) 数据主体拥有需要数据的对象的数据&#xff0c;并且数据改变时需要数据的对象要及时知道 意图&#xff1a; 定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。主要…

【ARTS】01_04_左耳听风-20181203~1209

ARTS&#xff1a; Algrothm: leetcode算法题目Review: 阅读并且点评一篇英文技术文章Tip/Techni: 学习一个技术技巧Share: 分享一篇有观点和思考的技术文章Algorithm Single Number https://leetcode.com/problems/single-number/ 1&#xff09;problem Given a non-empty arra…

vue项目(webpack+mintui),使用hbuilder打包app - 小小人儿大大梦想 - 博客园

一、配置config/index.js 本人没有配置index.js文件&#xff0c;就开始进行了打包&#xff0c;结果最终效果是页面空白&#xff0c;解决了空白&#xff0c;接着底部图标&#xff08;我是用的阿里巴巴图片&#xff09;资源找不到。所以配置这步比较重要。 &#xff08;1&#…

caffe介绍

转载于:https://www.cnblogs.com/Artimis-fightting/p/10945099.html

python-mysql 基础知识记录

cursor.fetchone() 与 cursor.fetchall() 如果查询结果为空&#xff0c;前者返回 None&#xff0c;后者返回[] 此时如用 len() 函数计算长度&#xff0c;前者报错&#xff0c;后者返回0 转载于:https://www.cnblogs.com/ZuoAn-xieyang/p/10097230.html

微服务之consul(一) - 诗码者 - 博客园

一、概述 consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案&#xff0c;不再需要依赖其他工具&#xff08;比如ZooKeeper等&#xff09;。服务部署简单&#x…

C#动态加载dll,dll目录指定

<?xml version"1.0"?><configuration><startup> <supportedRuntime version"v4.0" sku".NETFramework,Versionv4.0"/></startup> <runtime> <assemblyBinding xmlns"urn:schemas-microsoft-com:a…

RestFramework之认证组件

一、认证组件的介绍 对于认证&#xff0c;我们一般有三种方式&#xff0c;即cookie, session,token, cookie,是将信息存放在客户端(浏览器上)&#xff0c;信息不安全&#xff1b;session,把信息放在服务器数据库中&#xff0c;但是要是信息量较大&#xff0c;对服务器的压力就会…

图解基于 Node.js 实现前后端分离 - CSDN博客

因为会上出了个意外&#xff0c;ppt图片全部丢失&#xff0c;只好对着白板跟大家交流了半个多小时。由于我做演讲不喜欢写太多的文字&#xff0c;没有图片的情况下讲漏了一些内容。这篇文章是我在会上分享内容对照ppt进行地整理。 基本介绍 首先从一个重要的概念“模板”说起…

java基础之XML

目录 java基础之XML1. XML解析概述2. DOM4J介绍2.1 常用包2.2 内置元素2.2 Element类2.3 Attribute类2.4 常用操作3. 代码演示3.1 DOM4J读取xml文件3.2 DOM4J创建xml文件3.2 DOM4J修改xml文件java基础之XML XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性…

CF176E Archaeology(set用法提示)

题目大意&#xff1a; 给一棵树&#xff0c;每次激活或熄灭一个点&#xff0c;每次问这些点都联通起来所需的最小总边权 分析&#xff1a; 若根据dfs序给所有点排序&#xff0c;为$v1,v2,v3....vk$&#xff0c;那么答案就是$(dis(v1,v2)dis(v2,v3)...dis(vk-1,vk)dis(vk,v1))/2…

网上整理的对于Rest和Restful api的理解 - 那啥快看 - 博客园

一、什么是Rest? REST不是"rest"这个单词&#xff0c;而是几个单词缩写 -- REpresentational State Transfer 直接翻译&#xff1a;表现层状态转移&#xff0c;但这个翻译正常人根本看不懂&#xff0c;找到的一种最好理解的说法是&#xff0c;URL定位资源&#xff…

P1101 单词方阵(DFS)

题目描述 给一n \times nnn的字母方阵&#xff0c;内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 88个方向的任一方向&#xff0c;同一单词摆放时不再改变方向&#xff0c;单词与单词之间可以交叉,因此有可能共用字母。输出时&#xff0c;…

企业级rancher搭建Kubernetes(采用rancher管理平台搭建k8s)

一、简介 Rancher简介 来源官方&#xff1a;https://www.cnrancher.com/ Rancher是一个开源的企业级容器管理平台。通过Rancher&#xff0c;企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部…

[工具]java_sublime的快速使用

目录 使用 : 怎么运行: 调整字体: 使用 : 新建--->写好代码后-->另存为尾缀是.java的文件 怎么运行: 在你另存为的目录下cmd调用控制台输入dos指令--->执行javac 文件名.java(有.java尾缀)(编译为.class文件)--->java 文件名(没有.class尾缀设计者认为执行的是…

基于SOA的银行系统架构

Part-1 【简述】 1.通过引入面向服务架构&#xff08;SOA&#xff09;&#xff0c;企业服务总线&#xff08;ESB&#xff09;&#xff0c;适配器&#xff08;Adapter&#xff09;及面向构件等技术&#xff0c;尝试打造一个统一业务流程服务平台&#xff0c;实现面向流程的服务…