迭代法求解递归算法

时间:2015-12-06 15:52:12

标签: algorithm recursion

考虑以下用于计算前n个平方和的总递推算法Sum(n)= 1square + 2square + ....... n square。 算法:

int Sum (n) {
    if (n=1) return 1 ;
    else return sum (n-1)+n*n;
}

编写上述算法的关系,并通过迭代方法求解。

2 个答案:

答案 0 :(得分:0)

考虑将call sum(n-1)替换为(n-1)*(n-1) n = n-1,依此类推。所以你的迭代算法应该是这样的:

sum = 0
for (i from 1 to n)  
do
    sum += i*i
done

答案 1 :(得分:0)

 #include<stdio.h>
 int add(int n);
 int main()
  {
   int n;
   printf("Enter an positive integer: ");
   scanf("%d",&n);
   printf("Sum = %d",sumofsquare(n));
   return 0;
 }
int sumofsquare(int n)
 {
if(n>1)
 return n*n+sumofsquare(n-1);  /* recursive call */
else if (n==1)
return 1; 
  }