考虑以下用于计算前n个平方和的总递推算法Sum(n)= 1square + 2square + ....... n square。 算法:
int Sum (n) {
if (n=1) return 1 ;
else return sum (n-1)+n*n;
}
编写上述算法的关系,并通过迭代方法求解。
答案 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;
}