查看完整版本 : [求助]不用循环的形式求出和式的值
如题,写出
1+2+4+8+16+。。。(即2的n次方的和式)
求个思路和核心代码
这个问题困了2个多小时,但就是写不出正确的来
function sum=sum(k)
if k==0
sum(0)=1;
else
sum=sum(k-1)+2*2^(k-1);
end
请指点,不胜感激!!
真是太伤心了,练连续两个问题都没人理
什么网站啊???连个讨论的人都没有
版主,请问,你们办这个论坛的宗旨是什么啊??
shiqiang
2008-05-17, 17:52
呵呵,抱歉呀,同学,那你加我QQ,咱两商量一下,我最近有些忙,有些问题没时间看,请原谅。
这个应该不难吧,弄个等比数列求和公式 sum = a1*(1-q^n)/(1-q)
function result = dengbi_sum(q,startind,endind)
a1 = q^startind;
t = 1 - q^(endind - startind);
result = a1 * t;
result = result/(1-q);
如计算1+2+4+8+... +2^k 则 result = dengbi_sum(2,0,k)
如计算 3+9+...+3^k 则 result = dengbi_sum(3,1,k)
上面的代码没用经过验证,不过应该没有问题,呵呵!
tolabfans
2008-05-19, 09:16
这个应该不难吧,弄个等比数列求和公式 sum = a1*(1-q^n)/(1-q)
function result = dengbi_sum(q,startind,endind)
a1 = q^startind;
t = 1 - q^(endind - startind);
result ...
没有通用性
这个应该不难吧,弄个等比数列求和公式 sum = a1*(1-q^n)/(1-q)
function result = dengbi_sum(q,startind,endind)
a1 = q^startind;
t = 1 - q^(endind - startind);
result ...
非常感谢,你给我提供了一个全新的思路。
通过这几天的努力,我自己便出了一个具有通适性的迭代代码。为感谢大家的帮助,特贴出来和大家共享。只要是迭代问题,只需做小的更改即可。程序代码如下(经过验证):
function s=findsum(k)
if k==0
s=1;
else s=1+2*findsum(k-1);
end
希望与大家共同进步!!
谢谢大家!
前面由于着急出言不逊希望版主莫怪!
vBulletin® v3.8.3,版权所有 ©2000-2025,Jelsoft Enterprises Ltd.