当前位置:   article > 正文

P1609 最小回文数_c++最小回文数

c++最小回文数

P1609 最小回文数
链接: link.
在这里插入图片描述
在这里插入图片描述
题解:将前半部分对称到字符串后半部分,就可以得到回文串,如果该回文串小于给出的字符串,从中间加1即可,注意有9的情况,当中间是9时,中间变0同时前后加1。注意特判全为9的情况,需要加位。

#include<bits/stdc++.h>
using namespace std;
char s[1000],a[1000];
int main()
{
	cin>>s;
	int n=strlen(s)-1;
	int i,flag=0;
	//s[0]='0',a[0]='0';
	for(i=0;i<=n-i;i++)a[i]=s[i],a[n-i]=s[i];
	
	if(strcmp(a,s)>0)
	{
		
	}
	else
	{
		for(i=n/2;i>=0;i--)
		{
			if(a[i]=='9')a[i]='0';
			else
			{
				a[i]++;
				break;
			}
		}
		for(i=0;i<=n/2;i++)a[n-i]=a[i];
		if(a[0]=='0')flag=1,a[n]='1';
	}
	if(flag==1)cout<<"1";
	 cout<<a;
 } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/660225
推荐阅读
相关标签
  

闽ICP备14008679号