博客
关于我
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/

你可能感兴趣的文章
Nacos服务部署安装
查看>>
nacos本地可以,上服务器报错
查看>>
Nacos注册Dubbo(2.7.x)以及namespace配置
查看>>
Nacos注册中心有几种调用方式?
查看>>
nacos注册失败,Feign调用失败,feign无法注入成我们的bean对象
查看>>
nacos源码 nacos注册中心1.4.x 源码 nacos源码如何下载 nacos 客户端源码下载地址 nacos discovery下载地址(一)
查看>>
nacos源码 nacos注册中心1.4.x 源码 spring cloud alibaba 的discovery做了什么 nacos客户端是如何启动的(二)
查看>>
nacos源码 nacos注册中心1.4.x 源码 如何注册服务 发送请求,nacos clinet客户端心跳 nacos 注册中心客户端如何发送的心跳 (三)
查看>>
Nacos源码分析:心跳机制、健康检查、服务发现、AP集群
查看>>