NC25995. 砝码和天平
描述
输入描述
第一行为一个整数T,代表有T组数据
接下来T行,每行有两个整数w,m (2 ≤ w ≤ 10^9, 1 ≤ m ≤ 10^9)。
输出描述
如果能,输出YES,否则输出NO。
示例1
输入:
2 3 7 4 22
输出:
YES NO
C++(clang++ 11.0.1) 解法, 执行用时: 4ms, 内存消耗: 508K, 提交时间: 2023-04-02 20:11:21
#include<bits/stdc++.h> using namespace std; int main(){ int w,m,t; cin>>t; while(t--){ cin>>w>>m; int flag=0; while(m){ if((m-1)%w==0) m--; else if((m+1)%w==0) m++; else if(m%w){ puts("NO"); flag=1; break; } m/=w; } if(flag==0){ puts("YES"); } } return 0; }
C++14(g++5.4) 解法, 执行用时: 6ms, 内存消耗: 628K, 提交时间: 2019-06-07 13:12:33
#include<iostream> using namespace std; int main(){ int t,w,m; cin>>t; while(t--){ int flag=1; cin>>w>>m; while(m){ if(m%w==0||m%w==1) m/=w; else if(m%w==w-1) m=(m+1)/w; else{ flag=0; break; } } if(flag) cout<<"YES\n"; else cout<<"NO\n"; } return 0; }