zoukankan      html  css  js  c++  java
  • P1015 回文数

    洛谷团队希望加入!
    题目描述
    若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。

    例如:给定一个十进制数 5656,将 5656 加 6565(即把 5656 从右向左读),得到 121121 是一个回文数。

    又如:对于十进制数 8787:

    STEP1:87+78=16587+78=165
    STEP2:165+561=726165+561=726
    STEP3:726+627=1353726+627=1353
    STEP4:1353+3531=48841353+3531=4884

    在这里的一步是指进行了一次 NN 进制的加法,上例最少用了 44 步得到回文数 48844884。

    写一个程序,给定一个 NN(2 le N le 102≤N≤10 或 N=16N=16)进制数 MM(100100 位之内),求最少经过几步可以得到回文数。如果在 3030 步以内(包含 3030 步)不可能得到回文数,则输出 Impossible!。

    输入格式
    两行,分别是 NN,MM。

    输出格式
    如果能在 3030 步以内得到回文数,输出格式形如 STEP=ans,其中 ansans 为最少得到回文数的步数。

    否则输出 Impossible!。

    输入输出样例
    输入 #1复制
    10
    87
    输出 #1复制
    STEP=4

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    char  c[100001];
    int  t,k,lena,leng=1,a[100001],b[100001],g[100001],n;
    void pd();
    void jf()
    {
     int x=0;leng=1;g[1]=0;
      while(leng<=lena+1)
      {g[leng]=a[leng]+a[lena+1-leng]+x;
      x=g[leng]/n;
      g[leng]%=n;
      leng++;
      }g[leng+1]=x;t++;//cout<<t; 
      while(g[leng]==0&&leng>1)
      {leng--;
      }
      pd();
    }
    void pd()
    { 
       int o=0;
     for(int i=1;i<=leng/2;i++)
       {if(g[i]==g[leng+1-i])
        {o++;if(o==leng/2)
          {cout<<"STEP="<<t;k++;}
        }
        else 
        {for(int i=1;i<=leng;i++)
         a[i]=g[i];
         lena=leng;
        }
       } 
      }
    int main()
    {scanf("%d",&n);
     scanf("%s",c);
      lena=strlen(c);
     for(int i=0;i<=lena-1;i++)
     {if(c[i]>57)a[lena-i]=10+c[i]-17-48;
     else a[lena-i]=c[i]-48;
    }
     while(t<=30&&k==0)
     {jf();
     }
     if(k==0)cout<<"Impossible!";
    }
    
  • 相关阅读:
    Swift学习二
    Swift学习一
    iOS--点击地图上某一点获取该点的经纬度
    iOS--新特性一览
    搭建LNAMP环境(三)- 源码安装Apache2.4
    搭建LNAMP环境(四)- 源码安装PHP7
    搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展
    搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展
    搭建LNAMP环境(七)- PHP7源码安装Memcached和Memcache拓展
    PHP安装mysql.so扩展
  • 原文地址:https://www.cnblogs.com/xmcword/p/13768416.html
Copyright © 2011-2022 走看看