51nod 1449 砝码称重 (二进制思想)

来源:互联网 发布:bat转换成exe 知乎 编辑:程序博客网 时间:2024/05/21 15:04


现在有好多种砝码,他们的重量是 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;} 




0 0