3445:【例78.3】回文数(Noip1999)

3445:【例78.3】回文数(Noip1999)

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

[例78.3] 回文数

1309:【例1.6】回文数(Noip1999)

信息学奥赛一本通(C++版)在线评测系统

洛谷——P1015 [NOIP1999 普及组] 回文数

洛谷——P1015 [NOIP1999 普及组] 回文数_哔哩哔哩_bilibili

1083 - 回文数

1083 - 回文数_哔哩哔哩_bilibili

NOIP1999普及组_回文数_高精_普及减难度

NOIP1999普及组_回文数_高精_普及减难度_哔哩哔哩_bilibili

CSP-J2-W1 P1015 [NOIP1999 普及组] 回文数

CSP-J2-W1 P1015 [NOIP1999 普及组] 回文数_哔哩哔哩_bilibili

P1015 [NOIP1999 普及组] 回文数

P1015 [NOIP1999 普及组] 回文数_哔哩哔哩_bilibili




/*
1309:【例1.6】回文数(Noip1999)-AC
http://ybt.ssoier.cn:8088/problem_show.php?pid=1309
*/
#include<iostream>
#include<cstring>
using namespace std;
int n,a[101],b[101],ans,i;

 //将数串s转化为整数数组a
void init(int a[])                                 
{ 
	string s; 
  	//n进制 读入字符串s  
	cin>>n>>s;                                   
  	
	//数组a清0   
	memset(a,0,sizeof(a));                 
  	
	//用a[0]计算字符串s的位数
	a[0]=s.length();                              
  	for(i=1;i<=a[0];i++)
    if(s[a[0]-i]>='0'&&s[a[0]-i]<='9')     
	{
		a[i]=s[a[0]-i]-'0';
	}
    else                                   
	{
		a[i]=s[a[0]-i]-'A'+10;
	}
}

//判别整数数组a是否为回文数
bool check(int a[])                           
{ 
	for(i=1;i<=a[0];i++)
    		if(a[i]!=a[a[0]-i+1])
			{
				return false;
			}
  	return true;
}

//整数数组a与其反序数b进行n进制加法运算
void  jia(int a[])                    
{
	 for(int i=1;i<=a[0];i++)b[i]=a[a[0]-i+1];      //反序数b
	 for(int i=1;i<=a[0];i++) a[i]+=b[i];              //逐位相加
	 
	//处理进位
	for(int i=1;i<=a[0];i++)                             
	{
	 	a[i+1]+=a[i]/n;
		a[i]%=n;
	} 
	
	//修正新的a的位数(a+b最多只能的一个进位)
	//最高进位 
	if( a[a[0]+1]>0 ) a[0]++;     
}
int main( void )
{	 
	init(a);
	if(check(a))
	{
		cout<<0<<endl;
		return 0;
	}
	
	//步数初始化为0
	ans=0;                                              
	while(ans++<=30)
	{       
		jia(a);
	 	if( check(a) )
		{
			cout<<ans<<endl;
			return 0;
		}
	}
	//输出无解信息
	cout<<"Impossible";                          
	return 0;
}


#include <bits/stdc++.h> 
using namespace std;
int n,a[101],b[101],ans;
void init(int a[]){
	string s;
	cin>>n>>s;
	memset(a,0,sizeof(a));
	a[0]=s.length();
	for(int i=1;i<=a[0];i++){
		if(s[a[0]-i]>='0'&&s[a[0]-i]<='9') a[i]=s[a[0]-i]-'0';
		else a[i]=s[a[0]-i]-'A'+10;
	}
}
bool check(int a[]){
	for(int i=1;i<=a[0];i++)
		if(a[i]!=a[a[0]-i+1]){
			return false;
		}
	return true;
}
void jia(int a[]){
	for(int i=1;i<=a[0];i++) b[i]=a[a[0]-i+1];
	for(int i=1;i<=a[0];i++) a[i]+=b[i];
	for(int i=1;i<=a[0];i++){
		a[i+1]+=a[i]/n;
		a[i]%=n;
	}
	if(a[a[0]+1]>0)a[0]++;
}
int main()
{
	init(a);
	if(check(a)){
		cout<<0;
		return 0;
	}
	ans=0;
	while(ans++<=30){
		jia(a);
		if(check(a)){
			cout<<ans;
			return 0;
		}
	}
	cout<<"Impossible";
	return 0;
}



 




洛谷 P1157 组合的输出 Python题解

洛谷 P1157 组合的输出 Python题解_p1157python-CSDN博客

洛谷 python P1164 小A点菜

洛谷 python P1164 小A点菜_p1164 小a点菜python-CSDN博客

python解洛谷入门题P1179、P1200、P1304、P1307、P1317、P1319、P1320、P1321、P1420、P1421

python解洛谷入门题P1179、P1200、P1304、P1307、P1317、P1319、P1320、P1321、P1420、P1421_p1179 [noip2010 普及组] 数字统计python-CSDN博客

洛谷pythonP1228 地毯填补问题 分治

洛谷pythonP1228 地毯填补问题 分治_python 滚地毯对抗赛游戏-CSDN博客

洛谷 P1307 [NOIP2011 普及组] 数字反转

洛谷 P1307 [NOIP2011 普及组] 数字反转-CSDN博客

简单字符串——洛谷#P1308 统计单词数(Python实现)

简单字符串——洛谷#P1308 统计单词数(Python实现)_洛谷p1308python-CSDN博客

循环!循环!循环!——洛谷#P1424 小鱼的航程(Python实现)

循环!循环!循环!——洛谷#P1424 小鱼的航程(Python实现)_小鱼的航程python-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dllglvzhenfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值