特别是使用Java,解决方案应该基本上与其他语言一起使用。
例如,12345将返回3.
感谢。
答案 0 :(得分:2)
递归解决方案:
double averageDigits(int number, int sum, int count) {
if(number==0) {
if(count==0) {
return 0;
}
return ((double) sum) / ((double) count);
}
else {
return averageDigits(number/10, sum + number % 10, ++count);
}
}
答案 1 :(得分:0)
如果你只有整数,你可能想要检查mod“%”和简单的除法“/”,并将它与一个循环组合起来计算并加总数字部分。
答案 2 :(得分:0)
:
将数字拆分成一个digeds列表,然后计算avg recursiv
double avg(List<Integer> list) {
if(list.length==0) return 0;
else return (list.get(0)+ (avg(list.sublist(1)*(lisr.length()-1)))
/list.length();
}
答案 3 :(得分:0)
不知道java,在javascript中,这会起作用
function avrg(arr){
avrg.arr = avrg.arr || arr.slice();
avrg.l = avrg.l || 1/arr.length;
return arr.length ? (avrg.l*avrg.arr.pop()+avrg(avrg.arr)) : 0;
}
答案 4 :(得分:0)
这就是诀窍:
public class DigitAverage {
public static void main(String[] args) {
System.out.println(digitAverage(12345));
}
private static double digitAverage(int remainder, int... depth) {
boolean first = false;
if (depth.length == 0) {
depth = new int[] { 1 };
first = true;
} else {
depth[0] = depth[0] + 1;
}
if (remainder < 10) {
return remainder;
}
double result = remainder % 10 + digitAverage(remainder / 10, depth);
if (first) {
result = result / depth[0];
}
return result;
}
}
请注意,此函数仅需要数字作为输入,调用者不会初始化递归的内部“簿记”参数。
答案 5 :(得分:0)
public String getAverage(String num) {
try {
Integer.parseInt(num);
} catch (NumberFormatException e) {
return "Invalid number";
}
int length = num.length();
int total;
int i;
String[] digits = num.split("");
for (String s : digits) {
i = Integer.parseInt(s);
total += i;
}
return (total / length).toString();
}