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

你可能感兴趣的文章
Mysql中文乱码问题完美解决方案
查看>>
mysql中的 +号 和 CONCAT(str1,str2,...)
查看>>
Mysql中的 IFNULL 函数的详解
查看>>
mysql中的collate关键字是什么意思?
查看>>
MySql中的concat()相关函数
查看>>
mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
查看>>
MySQL中的count函数
查看>>
MySQL中的DB、DBMS、SQL
查看>>
MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
查看>>
MySQL中的GROUP_CONCAT()函数详解与实战应用
查看>>
MySQL中的IO问题分析与优化
查看>>
MySQL中的ON DUPLICATE KEY UPDATE详解与应用
查看>>
mysql中的rbs,SharePoint RBS:即使启用了RBS,内容数据库也在不断增长
查看>>
mysql中的undo log、redo log 、binlog大致概要
查看>>
Mysql中的using
查看>>
MySQL中的关键字深入比较:UNION vs UNION ALL
查看>>
mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏
查看>>
mysql中的字段如何选择合适的数据类型呢?
查看>>
MySQL中的字符集陷阱:为何避免使用UTF-8
查看>>
mysql中的数据导入与导出
查看>>