yy0316 2016:1的平方+3的平方+……99的平方

来源:百度文库 编辑:神马品牌网 时间:2024/05/01 11:07:51
1的平方+3的平方+……99的平方

哪种算法最快。

一般都会用for循环做的了,不过如果你要讲求算法效率的话,还是求出前N项和的通项公式是最快的。即:
a(n)=(2n-1)^2,求出S(n),然后取n=50(则2n-1为99)代入S(n)可得。

由于自然数前N项平方和公式为,S1(n)=n(2n+1)(n+1)/6
自然数前N项和为S2(n)=n(n+1)/2
又因为a(n)=(2n-1)^2=4n^2-4n+1
所以S(n)=4S1(n)-4S2(n)+n=(4n^3-n)/3
根据此公式编写函数如下:
long mysum(int n)
{
return (4*n*n*n-n)/3;
}
时间复杂度为O(1),如果要算99的,调用mysum(50)即可

PS:再送你一个用循环算的,时间复杂度为O(n)
sum=0;
for(i=1;i<=99;i+=2)
sum+=i*i;

楼上用VB、Basic和Pascal写的都不对,dim i的那个最后结果是99的平方,Pascal那个的结果是3的平方。

for i=1 to 99
a=i
for b= 1 to 99
b=b
c=a*b
next b
next i
print c

这是PASCAL的:
var
a:integer;
begin
a:=1;
a:=a+2;
write(a*a);
end.
好像是这样吧,好久不玩了。

#include "stdio.h"
main()
{int i,s;
s=0;
for(i=1;i<=99;i+=2)
s+=i*i;
printf("s=%d",s);
}

用的是什么语言啊

还是水晶高啊