1 条题解
-
1
#include <bits/stdc++.h> #define ll long long using namespace std; int I; //I进制转为10进制 ll to(ll n){ if (I==10) return n; //按位加权累加 ll ans=0;int j=1; while (n){ ans+=n%10*j; j*=I; n/=10; } return ans; } int mi(ll n){//n中每位的最大数字ans,表示n最少是ans+1进制 ll ans=1; while (n){ ans=max(n%10,ans); n/=10; } return (int)(ans+1); } int main(){ //岂不是有手就行? //思路:对2-16进制进行循环 //使等式成立的进制即输出 ll p,q,r,p1,q1,r1; cin>>p>>q>>r; //p=6,q=9,r=42; //最小应该是几进制? int m=max(mi(p),mi(q)); m=max(m,mi(r)); for (I=m;I<=16;I++){ // if (I!=10) {p1=to(p);q1=to(q);r1=to(r);} if (r1==p1*q1*1l) break; } cout<<(I>16?0:I); return 0; }
- 1
信息
- ID
- 6952
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 24
- 已通过
- 6
- 上传者