CF552C的题解

(一)

相当于问你能否将 m 拆成奇特的 n 进制是每一位是 101

然后就用这题的方法拆分。

  1. 先对 n 取余。

    • 如果余 0,直接继续。

    • 如果余 1m=m1

    • 如果余 1m=m+1

    • 否则,输出 NO。

  2. 换下一位:m=m÷n

(二)

AC 代码。

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
signed main(){
	scanf("%lld%lld",&n,&m);
	if(n==2){
		puts("YES");
		return 0;
	}
	while(m>0){
		int p=m%n;
		if(p==1){
			m--;
		}
		else if(p==n-1){
			m++;
		}
		else if(p!=0){
			puts("NO");
			return 0;
		}
		m/=n;
	}
	puts("YES");
	return 0;
}
posted @   Jerry_heng  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示