博客
关于我
hdu 6828 Little Rabbit‘s Equation 模拟
阅读量:361 次
发布时间:2019-03-04

本文共 2104 字,大约阅读时间需要 7 分钟。

文章目录

题目大意

给你一个算式,求算式最小是在几进制下运算得以成立

题目思路

写一个k进制转换10进制的函数

将式子中的3个数都从k进制转化成10进制,然后运算
从最小可能的进制跑到16,若成立,把最小的结果记录下来输出即可
注意题目要求进制最小为2
0+0=0这种情况下,答案应输出2

代码

#include 
using namespace std;typedef long long ll;char number[20];map
mp;ll to_digit(string c, int k) { bool fu = false; int l = c.length(); if (c[0] == '-') fu = 1; if (c[l - 1] == '.') l--; ll ans = 0; for (int i = fu; i < l; ++i) { ans *= k; ans += mp[c[i]]; } return ans * (fu ? -1 : 1);}int main() { for (int i = 0; i < 10; i++) number[i] = '0' + i; for (int i = 0; i < 6; i++) number[i + 10] = 'A' + i; for (int i = 0; i < 16; i++) mp[number[i]] = i; string s; set
oper; oper.insert('+'), oper.insert('-'), oper.insert('*'), oper.insert('/'); while (cin >> s) { int i = 1; char m = '0'; for (; oper.count(s[i]) == 0; i++) if (mp[s[i]] > mp[m]) m = s[i]; if (mp[s[0]] > mp[m]) m = s[0]; string a = s.substr(0, i); char op = s[i++]; int j = (s[i] != '-' ? i : i + 1); for (; s[j] != '='; j++) if (mp[s[j]] > mp[m]) m = s[j]; string b = s.substr(i, (j++) - i); i = s[j] != '-' ? j : j + 1; for (; i < s.length(); i++) if (mp[s[i]] > mp[m]) m = s[i]; string c = s.substr(j, s.length() - j + 1); bool flag = 0; int ans = -1; for (int k = max(mp[m] + 1, 2); k <= 16; k++) { ll na = to_digit(a, k), nb = to_digit(b, k), nc = to_digit(c, k); switch (op) { case '+': if (na + nb == nc) flag = 1; break; case '-' : if (na - nb == nc) flag = 1; break; case '*': if (na * nb == nc) flag = 1; break; case '/': if (na / nb == nc && na % nb == 0) flag = 1; break; } if (flag) { ans = k; break; } } cout << ans << endl; } return 0;}

转载地址:http://zair.baihongyu.com/

你可能感兴趣的文章
neo4j图形数据库Java应用
查看>>
Neo4j图数据库_web页面关闭登录实现免登陆访问_常用的cypher语句_删除_查询_创建关系图谱---Neo4j图数据库工作笔记0013
查看>>
Neo4j图数据库的介绍_图数据库结构_节点_关系_属性_数据---Neo4j图数据库工作笔记0001
查看>>
Neo4j图数据库的数据模型_包括节点_属性_数据_关系---Neo4j图数据库工作笔记0002
查看>>
Neo4j安装部署及使用
查看>>
Neo4j电影关系图Cypher
查看>>
Neo4j的安装与使用
查看>>
Neo4j(1):图数据库Neo4j介绍
查看>>
Neo4j(2):环境搭建
查看>>
Neo4j(3):Neo4j Desktop安装
查看>>
Neo4j(4):Neo4j - CQL使用
查看>>
Neo图数据库与python交互
查看>>
NEO改进协议提案1(NEP-1)
查看>>
Neo私链
查看>>
NervanaGPU 项目使用教程
查看>>
Nerves 项目教程
查看>>
nessus快速安装使用指南(非常详细)零基础入门到精通,收藏这一篇就够了
查看>>
Nessus漏洞扫描教程之配置Nessus
查看>>
Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
查看>>
nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML.
查看>>