假设用户输入UIWebView
,我可以轻松找到它的平方。 (单位数输入)
如何使用递归方法查找平方和(输入多个数字),例如1
应该12345
?对于基本情况,正确为1*1 + 2*2 + 3*3 + 4*4 + 5*5 = 55
对吗?从那里开始,如何计算num == 1
后面的后续数字?
1
答案 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
由数字1
,2
,...组成的事实在十进制系统中很明显。因此,我们将我们的数字存储为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;
}