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

    #include<iostream>
    #include<algorithm>
    #include<string>
    using namespace std;
    const int len = 1010;
    void print(int a[])
    {
        for(int i=1;i<=a[0];i++) 
        {
            if(a[i]<10) cout << a[i];
            else cout <<(char)('A'+a[i]-10);
        }
    }
    int toNum(char ch)
    {
        if(ch>='0' && ch<='9') return ch-'0';
        if(ch>='A' && ch<='Z') return ch-'A'+10;
        if(ch>='a' && ch<='z') return ch-'a'+10;
        return -1;
    }
    int match(int a[])
    {
        for(int i=1;i<=a[0]/2;i++)
        {
            if(a[i]!=a[a[0]-i+1]) return 0; 
        } 
        return 1;
    }
    void add(int a[],int b[],int n)
    {
        for(int i=1;i<=a[0];i++) b[i]=a[a[0]-i+1];
        b[0]=a[0];//print 
        print(a);
        cout <<"+";
        print(b);
        cout <<"=";
        a[0]++;
        for(int i=1;i<=a[0];i++)
        {
            a[i]+=b[i];
            if(a[i]>=n)
            {
                a[i+1]++;
                a[i]%=n;
            }    
        }
        if(a[a[0]]==0) a[0]--;
        print(a);
        cout <<endl; 
    }
    int main(void)
    {
        int n,a[len],b[len];
        cin >> n;
        string s;
        cin >> s;
        for(int i=0;i<len;i++) a[i]=b[i]=0;
        a[0]=s.length();
        for(int i=1;i<=a[0];i++) a[i]=toNum(s[i-1]);
        int cnt=0;
        while(!match(a))
        {
            cnt++;
            add(a,b,n);
        }
        cout << cnt;
        return 0;
    }
  • 相关阅读:
    Piggy-Bank (hdoj1114)
    Word Amalgamation(hdoj1113)
    Lowest Bit(hdoj1196)
    1206: B.求和
    1207: C.LU的困惑
    STL初步
    关于521(nyoj)
    first blood暴力搜索,剪枝是关键
    变态最大值(nyoj)
    烧饼(nyoj779)
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/10459490.html
Copyright © 2011-2022 走看看