非递归的程序如下:
public static void m4(int n){
int sum=0;
for(int i=0;i<=n;i++){
System.out.print((sum+=i*i)+" ");
}
}
我自己改过一下,如下:
public static void m6(int n){
if(n>0){
m6(n-1);
}
System.out.print((sum+=n*n)+" ");
}但是SUM不能保存递归返回的和(SUM在方法外面定义了,我这里没有写出来),在这里请教下,上面那个循环怎么用递归实现?谢谢
public static void m4(int n){
int sum=0;
for(int i=0;i<=n;i++){
System.out.print((sum+=i*i)+" ");
}
}
我自己改过一下,如下:
public static void m6(int n){
if(n>0){
m6(n-1);
}
System.out.print((sum+=n*n)+" ");
}但是SUM不能保存递归返回的和(SUM在方法外面定义了,我这里没有写出来),在这里请教下,上面那个循环怎么用递归实现?谢谢
imt sum=0;
if(n>0){
sum=m6(n-1);
}
System.out.print((sum+=n*n)+" ");
return sum;
}最后你在外面sum=m6(n)就行了,不知道你是不是这个意思
public static int M(int i){//LZ可以对 i 加些判断条件
if(i == 0)
return 0;
else
return i*i + M(i - 1);
}
{
if(i == 1)
return 1;
else
return i*M(i - 1);
}
public class digui {
long sum = 0;
int i = 0;
public long m6( int n ) {
if ( i <= n ) {
sum += i*i;
i++;
m6( n );
}
return sum;
} public static void main(String args[]) {
digui object1 = new digui();
System.out.print(object1.m6(4));
System.exit(0);
}
}
楼主试试这个 这个就可以了
public static void m6(int n){
if(n>0){
m6(n-1);
}
System.out.print((sum+=n*n)+" ");
}
m6(n-1);
}递归方法当中不是要写递归继续执行下去的条件
而是要写递归到终点返回的条件