现在有好多种砝码,他们的重量是 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
ac代码:
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <algorithm>
#include <stdlib.h>
#include <stack>
#define ll long long
using namespace std;
int w,m;
int jdg(){
while(m){
if(m%w==0 || m%w==1){
m=m/w;
}
else if(m%w == w-1){//进行借位 ,因为可以像对面看
m=m/w+1;
}
else{
printf("NO\n");
return 0;
}
}
return 1;
}
int main()
{
while(~scanf("%d%d",&w,&m)){
int flag=jdg();
if(flag)
printf("YES\n");
}
return 0;