• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            付翔的專欄
            在鄙視中成長 記錄成長的點滴
            posts - 106,  comments - 32,  trackbacks - 0

            Reverse and Add



            The  reverse and add  function starts with a number, reverses its digits and adds the reverse to the original. If the sum is not a palindrome (meaning it does not give the same number read from left to right and right to left), we repeat this procedure until it does.

            For example, if we start with 195 as the initial number, we get 9,339 as the resulting palindrome after the fourth addition:

            195
            786
            1,473
            5,214
            591
            687
            3,741
            4,125
            + ---
            + ---
            + ---
            + ---
            786
            1,473
            5,214
            9,339

            This method leads to palindromes in a few steps for almost all of the integers. But there are interesting exceptions. 196 is the first number for which no palindrome has been found. It has never been proven, however, that no such palindrome exists.

            You must write a program that takes a given number and gives the resulting palindrome (if one exists) and the number of iterations/additions it took to find it.

            You may assume that all the numbers used as test data will terminate in an answer with less than 1,000 iterations (additions), and yield a palindrome that is not greater than 4,294,967,295.

            Input

            The first line will contain an integer N ( 0 < N$ \le$100), giving the number of test cases, while the next N lines each contain a single integer P whose palindrome you are to compute.

            Output

            For each of the N integers, print a line giving the minimum number of iterations to find the palindrome, a single space, and then the resulting palindrome itself.

            Sample Input

            3
            195
            265
            750

            Sample Output

            4 9339
            5 45254
            3 6666
            一個簡單的處理問題 直接用加法模板 過的 這個服務器由于是gcc標準 所有很多以前用習慣的函數 都不支持 如 strrev  還得自己寫個
            不過還好 不難

            貼上代碼
            #include <stdio.h>
            #include 
            <string.h>
            #include 
            <stdlib.h>
            const int maxn = 110;

            void add(char a[],char b[],char back[])
            {
                
            int i,j,k,up,x,y,z,l;
                
            char *c;
                
            if (strlen(a)>strlen(b)) l=strlen(a)+2else l=strlen(b)+2;
                c
            =(char *) malloc(l*sizeof(char));
                i
            =strlen(a)-1;
                j
            =strlen(b)-1;
                k
            =0;up=0;
                
            while(i>=0||j>=0)
                    {
                        
            if(i<0) x='0'else x=a[i];
                        
            if(j<0) y='0'else y=b[j];
                        z
            =x-'0'+y-'0';
                        
            if(up) z+=1;
                        
            if(z>9) {up=1;z%=10;} else up=0;
                        c[k
            ++]=z+'0';
                        i
            --;j--;
                }
                
            if(up) c[k++]='1';
                i
            =0;
                c[k]
            ='\0';
                
            for(k-=1;k>=0;k--)
                    back[i
            ++]=c[k];
                back[i]
            ='\0';
            }
            char *strrev(char *s)
            {
                
            if (s == NULL || s[0== '\0')
                    
            return s;    
                
            for (char t, *= s, *= s + strlen(s) - 1; p < q; p++, q--)
                    t 
            = *p, *= *q, *= t;
                
                
            return s;
            }
            bool isReverse(char str[])
            {
                
            char *temp;
                temp 
            = (char*)malloc(sizeof(char)*(strlen(str) +3));
                strcpy(temp,str);
                strrev(temp);
                
            //temp = strrev(str);
                if(strcmp(str,temp)==0)
                    
            return true;
                
            return false;
            }
            int main()
            {
                
            char str1[maxn],str2[maxn],back[maxn];
                
            int i,n,num,T;
                scanf(
            "%d\n",&T);
                
            while(T--)
                {
                    i 
            = 0;
                    gets(str1);
                    strcpy(str2,str1);
                    strrev(str2);
                    strcpy(back,
            "0");
                    
            while(!isReverse(str1))
                    {
                        add(str1,str2,back);
                        strcpy(str1,back);
                        strcpy(str2,str1);
                        strrev(str2);
                        i 
            ++;
                    }
                    printf(
            "%d %s\n",i,str1);

                }
                
                
            return 0;
            }


            posted on 2010-07-23 19:43 付翔 閱讀(280) 評論(0)  編輯 收藏 引用 所屬分類: ACM 數據結構

            <2010年7月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(2)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            CSDN - 我的blog地址

            博客

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            91精品国产91久久综合| 午夜天堂精品久久久久| 国产日韩久久久精品影院首页| 国产香蕉97碰碰久久人人| 亚洲欧美国产精品专区久久 | 99国产欧美精品久久久蜜芽| 狠狠色丁香婷婷综合久久来 | 久久久久无码国产精品不卡| 亚洲精品国产字幕久久不卡 | 亚洲愉拍99热成人精品热久久 | 亚洲国产精品一区二区久久hs| 97精品久久天干天天天按摩| 久久久久久国产精品无码下载| 一个色综合久久| 亚洲午夜精品久久久久久人妖| 久久综合九色综合网站| 99久久国产宗和精品1上映 | 一级a性色生活片久久无少妇一级婬片免费放 | 中文字幕精品无码久久久久久3D日动漫 | 少妇久久久久久被弄高潮| 精品欧美一区二区三区久久久| 精品久久久中文字幕人妻| 久久久久久国产a免费观看黄色大片 | 国产亚洲美女精品久久久| 97精品依人久久久大香线蕉97| 美女久久久久久| 中文字幕精品无码久久久久久3D日动漫| 国产成人久久精品一区二区三区| 99re这里只有精品热久久| 久久中文字幕人妻熟av女| 亚洲AV无码久久精品蜜桃| 亚洲精品无码久久久久AV麻豆| 亚洲国产二区三区久久| 国产精品久久久久影院嫩草| 久久夜色精品国产噜噜麻豆| 免费久久人人爽人人爽av| 亚洲人成无码网站久久99热国产 | 久久se这里只有精品| 9191精品国产免费久久| 久久久国产精品福利免费| 久久久久九九精品影院|