計算一個數加上reverse之後的數,這個步驟要重覆幾次,才會使最後的數是迴文

[心得]

1.中文題目有限制最多100個測資,但是ACM網站改版後拿掉這段了 OTL

2.reverse的方法

3.數據表示範圍,int:-2147483648~2147489647

                          unsigned (int):0~4294967295

 

#include <stdio.h>

unsigned int Rev(unsigned int integer)
{
    unsigned int rev=0;
        
    while(integer>0)
    {
        rev=rev*10+integer%10;
        integer=integer/10;
    }
    return rev;
}

int main()
{
    int n;
    int i,j;
    unsigned int integer;   
    unsigned int reverse;

    
    scanf("%d",&n);
   
    for(i=0;i<n;i++)
    {
        scanf("%u",&integer);
        reverse=Rev(integer);
       
        for(j=1; ;j++)
        {
            integer=integer+reverse;
            reverse=Rev(integer);
            if(reverse==integer) break;
        }

        printf("%d %u\n",j,reverse);
    }
   
    return 0;
}

 

arrow
arrow
    全站熱搜

    RingsACM 發表在 痞客邦 留言(0) 人氣()