如何使用递归来表示用户输入的平方和?

时间:2017-11-08 15:50:56

标签: java algorithm math recursion

假设用户输入UIWebView,我可以轻松找到它的平方。 (单位数输入) 如何使用递归方法查找平方和(输入多个数字),例如1应该12345?对于基本情况,正确为1*1 + 2*2 + 3*3 + 4*4 + 5*5 = 55对吗?从那里开始,如何计算num == 1后面的后续数字?

1

2 个答案:

答案 0 :(得分:5)

你必须先考虑一些小步骤。这都是关于提取数字和计算方块。

public static int squareSum(int num) {
    if (num == 0) return 0;
    return (num%10)*(num%10) + squareSum(num/10); 
}

对于12345: -

f(12345) 

f(1234)+5*5

f(123)+4*4+5*5

f(12)+3*3+4*4+5*5

f(1)+2*2+3*3+4*4+5*5

f(0)+1*1+2*2+3*3+4*4+5*5

答案 1 :(得分:1)

问题是,你无法轻易获得位置x的数字。 12345由数字12,...组成的事实在十进制系统中很明显。因此,我们将我们的数字存储为String,取每个字符并将其解析为整数。然后我们对数字进行平方并添加它们

int i sum = 0;
String iAsString = i;
for (int i = 0; i < iAsString.length; i++) {
    int currentNumber = Character.getNumericValue(iAsString.charAt(i));
    sum += currentNumber * currentNumber;
}