• CodeVS 1045 回文数


    题目大意:

    http://codevs.cn/problem/1045/

    代码:

    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    int n,m;
    char ch[500];
    int arr[500];
    void print()
    {
        for(int i = 0 ; i < 500; i++)
        {
            if(arr[i] != -1)
                cout << arr[i] << " " ;
            else
                break;
        }
    
        cout << endl;
    }
    void add()
    {
        int tmp[500];
        int arr1[500];
        int count = 0;
        int l = 0;
        for(int i = 0; i < 500; i++)
        {
            if(arr[i] != -1)
                l++;
            else
                break;
        }
        l--;
    
        for(int i = l, j = 0; i >= 0 ;i--, j++)
        {
            arr1[j] = arr[i];
        }
        int flag = 0;
        while(l >= 0)
        {
            int t = (arr[l] + arr1[l] + flag) % n;
            flag = (arr[l] + arr1[l] + flag) / n;
            tmp[count++] = t;
            l--;
    
        }
    
        if(flag == 1)
            tmp[count++] = 1;
    
        for(int i = count - 1, j = 0; i >= 0; i--, j++)
        {
            arr[j] = tmp[i];
        }
    
    
    }
    
    bool judge()
    {
        int l = 0;
        for(int i = 0; i < 500; i++)
        {
            if(arr[i] != -1)
                l++;
            else
                break;
        }
    
        l--;
        int s = 0;
        while(s <= l)
        {
            if(arr[s] == arr[l])
            {
                s++;
                l--;
            }
            else
                return false;
        }
    
        return true;
    }
    
    
    int main()
    {
        cin >> n >> ch;
    
        for(int i = 0; i < 500; i++) arr[i] = -1;
        for(int i = 0; i < strlen(ch); i++)
        {
            int tmp = ch[i] - '0';
            if(tmp <= 9) arr[i] = tmp;
            else
                arr[i] = tmp - 7;
        }
    
        for(int i = 0; i <= 30; i++)
        {
    
            if(!judge())
            {
                add();
    
            }
            else
            {
                cout <<"STEP=" << i << endl;
                return 0;
            }
    
        }
    
        cout << "Impossible!" << endl;
        return 0;
    }
  • 相关阅读:
    inotify事件监控
    NFS网络文件共享服务
    Rsync数据同步服务
    SSH连接原理及ssh-key讲解
    C语言I博客作业04
    C语言l博客作业03
    C语言I博客作业02
    定义一个计算字符串高度的方法
    字典转模型
    UIScrollView和UIPageControl
  • 原文地址:https://www.cnblogs.com/zyqBlog/p/7692440.html
Copyright © 2020-2023  润新知