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
?对于基本情况,将asnum==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)
,会发生什么?你会得到一个无限循环!