求帮助
查看原帖
求帮助
992935
prophetcoding楼主2023/8/12 11:08
#include <bits/stdc++.h>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
using namespace std;
int main()
{
	int ans,j;//j进制数 
	int n[30],a=0;
	string shu;
	cin>>j>>shu;
	int i=0,i1=0;//i指位数,i1指判断是否是回文数 
	for  (i=0;i<shu.size();i++)
	{
		n[i+1]=shu[i]-48;//将string改为int数组 
	} 
	i++;//补全位数 
	for(int o=i,u=0;o>=1;o--,u++)
	{
		if (j==10)
		break;
		a+=n[i]*pow(j,u);//转换进制 
	}
	for (int o=1;o<=30;o++)
	{
		i=sizeof(a);
		for (int u=1,o=i;u<=i;u++,o--)
		{
			if (n[o]==n[u])
			i1++;
		}
		if (i1==i)
		{
			cout<<"STEP="<<o<<endl;//判断回文 
			return 0;
		}
		i1=0;
		for (int o=i,u=1;o>=1;o--,u++)
		{
			n[o]+=n[u];//回文数相加  
		}
	}
	cout<<"Impossible!"<<i<<endl;
	return 0;
}
2023/8/12 11:08
加载中...