一个价值100分的等于号
  • 板块灌水区
  • 楼主AKBRSD
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/11/22 17:23
  • 上次更新2023/11/3 23:45:05
查看原帖
一个价值100分的等于号
62232
AKBRSD楼主2021/11/22 17:23

第一个循环,i<MAXN打成了i<=MAXN,100分变成0分

#include<cstdio>
using namespace std;
const int MAXN=1e7+321;
int f[MAXN];
bool cj[MAXN],bj[MAXN];
int main()
{
	//freopen("number.in","r",stdin);
	//freopen("number.out","w",stdout);
	bj[7]=1;
	for(int i=1;i<=MAXN;i++)
	{
		for(int j=i;j>0;j/=10)
			if(j%10==7)
			{
				bj[i]=1;
				break;
			}
		if(bj[i])
		{
			if(!cj[i])
			{
				for(int j=1;i*j<MAXN;j++)
				{
					cj[i*j]=1;
					bj[i*j]=1;
				}
			}
		}
	}
	for(int i=MAXN-321;i>=1;i--)
	{
		if(bj[i])
			f[i]=-1;
		else
		{
			for(int j=i+1;j<=MAXN-1;j++)
				if(!bj[j])
				{
					f[i]=j;
					break;
				}
		}
	}
	int T,l1;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d",&l1);
		printf("%d\n",f[l1]);
	}
	return 0;
}

我哭死

2021/11/22 17:23
加载中...