Java 如何使用用户输入的平方和递归?

Java 如何使用用户输入的平方和递归?,java,algorithm,math,recursion,Java,Algorithm,Math,Recursion,假设对于用户输入1,我可以很容易地找到它的平方。(单个数字输入) 如何使用递归方法查找平方和(输入多个数字),例如12345应给出1*1+2*2+3*3+4*4+5*5=55?对于基本情况,将asnum==1是正确的,对吗?从那里,我如何计算1后面的后续数字 public static int squareSum(int num) { if (num == 1) { return num*num; } else { return 0; }

假设对于用户输入
1
,我可以很容易地找到它的平方。(单个数字输入) 如何使用递归方法查找平方和(输入多个数字),例如
12345
应给出
1*1+2*2+3*3+4*4+5*5=55
?对于基本情况,将as
num==1是正确的,对吗?从那里,我如何计算
1
后面的后续数字

public static int squareSum(int num) {
    if (num == 1) {
        return num*num;
    } else {
        return 0; 
    }
}

问题是,你不能轻易地得到位置x的数字。
12345
由数字
1
2
。。。只有在十进制中才明显。因此,我们将把数字存储为
字符串
,将每个字符解析为一个整数。然后我们将数字平方并相加

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;
}
int i sum=0;
字符串iastring=i;
for(int i=0;i
问题是,您无法轻松获得位置x处的数字。
12345
由数字
1
2
。。。只有在十进制中才明显。因此,我们将把数字存储为
字符串
,将每个字符解析为一个整数。然后我们将数字平方并相加

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;
}
int i sum=0;
字符串iastring=i;
for(int i=0;i
您必须首先考虑小步骤。这一切都是关于提取数字和计算平方的

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

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

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

基本情况是递归停止时的条件,所以这就是输出结果的时候,不要在那里开始另一个计算。@hamena314哦,我不知道。。。感谢您的澄清。如果这是一项家庭作业任务,那么它还可以,但我不建议在这种类型的计算中使用递归(而是使用循环)。基本情况是递归停止时的条件,因此这就是输出结果的时候,不要在那里开始另一个计算。@hamena314 Ohh我不知道。。。谢谢你的澄清。如果这是一项家庭作业,那也没关系,但我不建议在这种类型的计算中使用递归(而是使用循环)。该死,我现在才意识到他/她想要一个递归解决方案。你的代码更好anyways@coderredoc你能解释一下为什么基本情况应该是num==0而不是num==1吗?实际上,你可以添加任意多的基本情况。我会使用0和1作为基本情况,比如说,如果我使用1作为基本情况,如果用户输入0,就会出现StackOverflower错误,对吗@宿命的な孤独 好吧,如果你用1作为基本情况,如果你调用
平方和(0)
,会发生什么?你会得到一个无限循环!该死,我现在才意识到他/她想要一个递归解决方案。你的代码更好anyways@coderredoc你能解释一下为什么基本情况应该是num==0而不是num==1吗?实际上,你可以添加任意多的基本情况。我会使用0和1作为基本情况,比如说,如果我使用1作为基本情况,如果用户输入0,就会出现StackOverflower错误,对吗@宿命的な孤独 好吧,如果你用1作为基本情况,如果你调用
平方和(0)
,会发生什么?你会得到一个无限循环!