收藏
关注
现在有好多种砝码,他们的重量是 w0,w1,w2,... 每种各一个。问用这些砝码能不能表示一个重量为m的东西。
样例解释:可以将重物和3放到一个托盘中,9和1放到另外一个托盘中。
Input
单组测试数据。 第一行有两个整数w,m (2 ≤ w ≤ 10^9, 1 ≤ m ≤ 10^9)。
Output
如果能,输出YES,否则输出NO。
Input示例
3 7
Output示例
YES
思路:重低位到高位考虑,最后一位只能为0,1,w-1
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int main(){ 5 int n,m; 6 cin>>n>>m; 7 int tt=0; 8 while(m){ 9 int x=m%n; 10 if(x==1||x==0){ 11 m=m/n; 12 } 13 else if(x==n-1){ 14 m=(m+1)/n; 15 } 16 else { 17 tt=1;break; 18 } 19 } 20 if(tt) cout<<"NO"<<endl; 21 else cout<<"YES"<<endl; 22 }