题目:
输入一个整数a,其个位为第一位,十位为第二位,依次类推,计算a的偶数位的和奇数位的和。例如200628,奇数位的和为8+6+0=14;偶数位的和为2+0+2=4。函数原型可参考此形式:void Func(int a,inb[]),a是输入的整数;b是输出,b[0],b[1]分别保存偶数的和、奇数位的和。
答案:
public class Test {
public static void main(String[] args) {
// 测试数据
int a = 200628;
// b[0],b[1]分别保存偶数的和、奇数位的和
int[] b = new int[2];
// 调用偶数位之和和奇数位之和计算函数
Func(a, b);
// 输出结果
System.out.println(a + "的偶数位之和:" + b[0]);
System.out.println(a + "的奇数位之和:" + b[1]);
}
/**
* 分别计算偶数位之和和奇数位之和
*
* @param a 测试数据
* @param b b[0]存储偶数位之和,b[1]存储奇数位之和
*/
public static void Func(int a, int b[]) {
// 计算偶数位之和
b[0] = getEvenSum(a);
// 计算奇数位之和
b[1] = getOddSum(a);
}
// 获取偶数位之和
public static int getEvenSum(int num) {
// 数字除以10,所以变成求解数字奇数为之和了
return getOddSum(num / 10);
}
/**
* 递归计算一个数字的奇数位之和
*
* @param num
* @return
*/
public static int getOddSum(int num) {
if (num == 0) {
return 0;
}
// num % 10:对10取余可以获得该数字的最后一位
// num / 100:除以100可以把该数字的后两位去掉
return num % 10 + getOddSum(num / 100);
}
}
结果:
200628的偶数位之和:4
200628的奇数位之和:14