现在有好多种砝码,他们的重量是 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
#include<bits/stdc++.h>
using namespace std;
int a[100];
int main()
{
int w,m,n,j,t,i;
cin>>w>>m;
n=0;
while(m) {
a[n++]=m%w;
m=m/w;
}
t=0;
for(i=0;i<n;i++) {
a[i]=(a[i]+t)%w;
if(a[i]==0||a[i]==1) t=0;
else if(a[i]==w-1) t=1;
else break;
}
if(i==n) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
return 0;
}