华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 847|回复: 0
打印 上一主题 下一主题

老师,我是周瀚文,这是我的程序,全啊斯(AC)了

[复制链接]

1

主题

2

帖子

65

积分

注册会员

Rank: 2

积分
65
跳转到指定楼层
楼主
发表于 2020-2-2 17:34:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<iostream>
using namespace std;
const int mm=100;
int s[mm],a[mm],i,p,x,n;
string M;
int N;
string d(string x)///颠倒
{
    string y="";
    for(int i=0; i<=x.size()-1; i++)y=x+y;
    return y;
}
bool isr(string x)///判断回文
{
    return x==d(x);
}
string add(string a,string b)///高精加
{
    string c="";
    int j=0;
    if(a.size()<b.size())swap(a,b);
    for(int i=1; i<=a.size()-b.size(); i++)b=b+"0";
    for(int i=a.size()-1; i>=0; i--)
    {
        int x1;
        if(a<='9')x1=a-'0';
        if('A'<=a)x1=a-'A'+10;
        int x2;
        if(b<='9')x2=b-'0';
        if('A'<=b)x2=b-'A'+10;
        int x3=x1+x2+j;
        //cout<<i<<" x1:"<<x1<<" x2:"<<x2<<" x3:"<<x3<<" j:"<<j<<endl;
        j=x3/N;///考虑N进制
        x3%=N;
        char ch;
        if(x3>=10)ch='A'+x3-10;
        else    ch='0'+x3;
        c=ch+c;
        //cout<<"a["<<i<<"]:"<<a<<endl;cout<<"b["<<i<<"]:"<<b<<endl;
    }
    if(j>0)c=char(j+'0')+c;
    //cout<<c<<endl;
    return c;
}
int main()
{
    cin>>N>>M;
    int ans=0;
    while(!isr(M) && ans<30)
    {
        ans++;
        M=add(M,d(M));
    }
    if(ans<30)cout<<"STEP="<<ans;
    else      cout<<"Impossible!";
    return 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-11-2 02:18 , Processed in 0.167350 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表