P1988 更改判断条件会W两个点
  • 板块P1988 火炬
  • 楼主SBro
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/11 18:08
  • 上次更新2024/5/11 21:02:44
查看原帖
P1988 更改判断条件会W两个点
1241180
SBro楼主2024/5/11 18:08

这段代码会WA #5 和 #7:

#include<bits/stdc++.h>
using namespace std;
long long n,m=1e18;
void pd(long long a){
	if(a>1e18 || a<1) return;
	if(a%n==0) m=min(m,a/n);
	pd(a*10);
	pd(a*10+1);
}
int main(){
	cin>>n;
	pd(1);
	cout<<m;
	return 0;
}

但把 pd 函数改成这样:

if(a>1e18 || a<1) return;
	if((a*10)%n==0) m=min(a*10/n,m);
	if((a*10+1)%n==0) m=min((a*10+1)/n,m);
	pd(a*10);
	pd(a*10+1);

这样就能AC了,请问为什么判断条件不能直接改成 a%n==0 ?

2024/5/11 18:08
加载中...