当前位置: 移动技术网 > 移动技术>移动开发>IOS > 2020多校第六场

2020多校第六场

2020年08月11日  | 移动技术网移动技术  | 我要评论

思路

暴力、模拟

代码

#include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <cmath> #include <cstring> #define ll long long using namespace std; const int maxn=6e6+6; const ll mod=998244353; const ll MOD=998244353; ll power(ll x,ll a) { ll ans=1; while(a) { if(a&1) { ans=ans*x%mod; } x=x*x%mod; a>>=1; } return ans; } ll a,b,ans; char optr; int base; bool isop(char c) { if(c=='+'||c=='-'||c=='*'||c=='/'||c=='=') return 1; else return 0; } int getn(char c) { if(c>='A') return c-'A'+10; else return c-'0'; } void fun(string s) { a=0;b=0;ans=0; int i; for(i=0;!isop(s[i]);i++) { a*=base; a+=getn(s[i]); } optr=s[i]; for(i++;s[i]!='=';i++) { b*=base; b+=getn(s[i]); } for(i++;i<s.size();i++) { //cout<<getn(s[i])<<' '; ans*=base; ans+=getn(s[i]); } } int main() { //std::ios::sync_with_stdio(false);cin.tie(0); string s; //int T;cin>>T; while(cin>>s) { bool f=1; int Max=-100; for(int i=0;i<s.size();i++) { if(!isop(s[i])) { Max=max(Max,getn(s[i])); } } Max=max(Max,1); for(base=Max+1;base<17;base++) { fun(s); //cout<<a<<' '<<optr<<' '<<b<<' '<<ans<<endl; if(optr=='*'&&a*b==ans) { cout<<base<<endl; f=0; break; } else if(optr=='+'&&a+b==ans) { cout<<base<<endl; f=0;break; } else if(optr=='-'&&a-b==ans) { cout<<base<<endl; f=0;break; } else if(optr=='/'&&ans*b==a) { cout<<base<<endl; f=0;break; } } if(f) cout<<-1<<endl; } return 0; } 

本文地址:https://blog.csdn.net/CreatureNoWords/article/details/107922204

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网