求一个整数的各位累加和
求一个整数的各位累加和?
比如: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; } }
作者:
Chris Wang
出处:
http://chriswang.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。