求一个整数的各位累加和

求一个整数的各位累加和?

比如:152->1+5+2->8
     -777->-7+7+7=7
思路:
(1)所以要考虑这个数是 整数和负数的情况,分开处理这两种情况。
(2)如果是正整数的话,每一次对这个数num求mod 10得到末尾的数m=num%10, m=num%10 然后再去尾数num=num/10,然后每次加m
(3)如果是负数的话,注意m=num%10,得到并不是最末尾数,而是末尾数的负数,所以加的时候应该加-m,除了一种情况,那就是到了首位数
的时候,首位数本就是一个负数,所以直接加上m就行了.

 

实现代码(Java)如下:

public class TestIterate3 {

    public static void main(String[] args) {
        System.out.println("-777 : "+getSum(-777));
        System.out.println("777 : "+getSum(777));
        System.out.println("0 : "+getSum(0));
    }

    /**
     * 求一个整数的各位数累加和
     * 考虑:
     * 152=>1+5+2=8 
     * -777=>-7+7+7=7
     * 
     */
    public static int getSum(int num) {
        int sum = 0;
        int m = 0;
        //
        if (num >= 0) {
            while (num != 0) {
                // 求末尾数m
                m = num % 10;
                // 然后去除尾数
                num = num / 10;

                sum += m;
            }

        } else {

            while (num != 0) {

                m = num % 10;
                num = num / 10;
                //
                if (num == 0) {
                    sum += m;
                } else {
                    sum += -m;
                }
            }
        }
        return sum;
    }

}
posted @ 2009-11-05 00:08  Chris Wang  阅读(486)  评论(0编辑  收藏  举报