image

以例題來看:

123->321

-123->-321

1200->21

 

import java.util.Scanner;

public class MainClass {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        int ans = 0;
        if (input < 0) {
            input = Math.abs(input);   //先拿掉負號
            input = clearZero(input);   //除掉input後面的0
            int inputLength = inputLength(input);  //取得輸入數字得長度

            int time = 1;
            int count = 0;
            while (count != inputLength) {  //當count等於輸入長度就停止
                count++;
                ans += input / times(10, count - 1) % 10 * times(10, inputLength - count);  
                //圖1所示
            }
            System.out.print(ans * -1);

        } else if (input > 0) {
            input = clearZero(input);   //除掉input後面的0
            int inputLength = inputLength(input);  //取得輸入數字得長度

            int time = 1;
            int count = 0;
            while (count != inputLength) {
                count++;
                ans += input / times(10, count - 1) % 10 * times(10, inputLength - count);
            }
            System.out.print(ans);
        }


    }

    //次方
    public static int times(int x, int y) {
        int ans = 1;
        for (int i = 0; i < y; i++) {
            ans *= x;
        }
        return ans;
    }

    //除掉input後面的0
    public static int clearZero(int input) {
        while (true) {
            if (input % 10 == 0) {
                input /= 10;
                continue;
            } else break;
        }
        return input;
    }

    //準備陣列放數字
    public static int[] prepareArray(int input) {
        int i = 10;
        int count = 1;   //個位數就要有長度為1的陣列
        while (true) {
            if (input / i > 0) {
                count++;
                i *= 10;
            } else {
                break;
            }
        }
        int[] readyArrays = new int[count];
        return readyArrays;
    }

    public static int inputLength(int input) {
        int i = 10;
        int count = 1;   //個位數就要有長度為1的陣列
        while (true) {
            if (input / i > 0) {
                count++;
                i *= 10;
            } else {
                break;
            }
        }
        return count;
    }
}

 

圖一

image

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Lillian 的頭像
    Lillian

    安安的code日記

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