能帮忙看看H题还有哪个边界没周全到么?通过率95.56..

#include<bits/stdc++.h>
using namespace std;
int n,s,f=0;
const int N=1e7;
char ans[N];
int p=0;
void jinzhi(int a,int i){ //利用栈实现进制转换,将转换到的数字存在ans数组中
	if(a>0) {
		jinzhi(a/i,i);
		int t=a%i;
		if(t>9)
			ans[p++] ='A'+t-10;
		else
			ans[p++] ='0'+t;
		ans[p]=0;
	}			
}
bool huiwen(){ //回文数判断
	int i=0;
    int j=strlen(ans)-1;
	int l=j;  //7447 4/2=2
	for(;i<j;i++,j--)
	{
		if(ans[i]!=ans[j]) //回文
			return false;
		if((i<l/2 && ans[i]>ans[i+1])) //递增
			return false;
	}
	return true;
}

int main(){
	cin>>n>>s;
	for(int i=2;i<=n;i++)
	{
		strcpy(ans,""); //初始化
		p=0;//初始化
		jinzhi(s,i);
		if(huiwen()) {printf("%d %s\n",i,ans);f=1;}		
	}
	if(!f) printf("guomienasai");
}


全部评论
第26行ans[i]>=ans[i+1];
2
送花
回复
分享
发布于 2022-05-29 18:30
111111这种不行,但是1221这种可以
1
送花
回复
分享
发布于 2022-05-29 18:31
秋招专场
校招火热招聘中
官网直投
改成ans[i]>=ans[i+1]
1
送花
回复
分享
发布于 2022-05-29 18:41

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务