51Nod 1449(砝码称重)

xiaoxiao2021-02-28  93

现在有好多种砝码,他们的重量是  w0,w1,w2,... w0,w1,w2,...  每种各一个。问用这些砝码能不能表示一个重量为m的东西。

样例解释:可以将重物和3放到一个托盘中,9和1放到另外一个托盘中。

Input 单组测试数据。  第一行有两个整数w,m (2 ≤ w ≤ 10^9, 1 ≤ m ≤ 10^9)。 Output 如果能,输出YES,否则输出NO。 Sample Input 3 7 Sample Output YES 这个题目是以前做的题,突然又看了,想了半天才懂为啥这样做了,写上题解,加深自己的理解吧。 解释下:就是问m是否由一些w构成,思路是将m弄成w进制的有(0------W-1)构成的一串数字,模拟 进制转换,如果取出来的余数等于0的话 说明当前这个地方不需要找到对应的w多少次方的一个数来 放到天平,如果是1的话,说明需要放一个来抵消,最重要的说明一点说明那个余数等于w-1的话,说明 需要找到这个数上一位相对应的砝码,这样让它加起来等于w,然后等于取一个当前对应的砝码来抵消。 不太懂这个的话,写一个例子就可以了。 #include<stdio.h> int main() { int a,b; scanf("%d%d",&a,&b); while(b) { int temp=b%a; if(temp==0||temp==1); else if(temp == a-1) b++; else { printf("NO\n"); return 0; } b=b/a; } printf("YES\n"); return 0; }
转载请注明原文地址: https://www.6miu.com/read-76818.html

最新回复(0)