2010/01/26

Ex10018

將數字反轉,比較反轉前和反賺後是否相同。如果不相同就將反轉前和反轉後數相加,再繼續反轉直到反轉前和反轉後相同。

先輸入有幾個test case,然後逐一輸入test case的數字

下面是程式碼片段

Scanner sc = new Scanner(System.in);
        int testCase = sc.nextInt();
        int[][] number = new int[testCase][2];
        
        
        for(int i = 0; i < testCase; i++) {
            number[i][0] = sc.nextInt();
            number[i][1] = 0;
        }
        
        for(int i = 0; i < testCase; i++) {
            // not the same after reverse 
            while(reverse(number[i][0]) != number[i][0]) {
                
                // add number and its' reverse
                number[i][0] = reverse(number[i][0]) + number[i][0];
                
                // reverse time++
                number[i][1]++;
            }
        }
        
        for(int i = 0; i < number.length; i++) {
            System.out.println(number[i][1] + " " + number[i][0]);
        }
        
    }
    
    int reverse(int number) {
        
        StringBuffer buffer = new StringBuffer();
        int length = String.valueOf(number).length();
        
        for(int i = 0; i < length; i++) {
            int rest = number % 10;
            buffer.append(rest);
            number = number / 10;
        }
        
        return Integer.parseInt(new String(buffer));
    }

※註
number[i][0]存放testcase
number[i][1]存放反轉次數

No comments:

Post a Comment