如何用另一种递归方法写这一串代码,输出的结果是一样的.就是改写这个方法
只是简化了下,其实怎么改都差不多的
public class GenerateSums {
public static String generateSum(int n){
if(n<1) {
return ""
}
String result = "1\n";
string temp = "1" ;
int sum=1;
for(int i=2;i<=n;i++){
temp +=+" + "+;
sum += i;
result +=(temp +” = ”+ sum + "\n");
}
return result.substring(beginIndex: 0, result.length()-1);
}
}
提供参考实例【递归改写成循环方式的实现例子】,期望对你有所帮助:http://www.manongjc.com/detail/24-jncretskrqdybvz.html
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int n,s;
System.out.println("请输入n=");
n=cin.nextInt();
s=sum(n);
System.out.println(s);
}
public static int sum(int n) {
if(n==1){
return 1;}
else if(n==2){
return 3;}
else{ return sum(n-1)+n;}
}
package com.example.demo003.controller;
public class Test02 {
public static String generateSum(int param1) {
if (param1 == 1) {
System.out.println(param1);
return "1=1";
}
final Object[] objects = generateSum(param1 - 1).split("=");
final int sum = param1 + Integer.valueOf(objects[1].toString());
final String x = objects[0] + "+" + param1 + "=" + sum;
System.out.println(x);
return x;
}
public static void main(String[] args) {
generateSum(4);
generateSum(10);
}
}
我用javascript 简单实现了一个 ,代码如下:
如有帮助,请采纳!