Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-05-16, 16:00   #1
wmch85
普通会员
 
注册日期: 2008-03-20
年龄: 41
帖子: 30
声望力: 18
wmch85 正向着好的方向发展
默认 [求助]不用循环的形式求出和式的值

如题,写出
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

请指点,不胜感激!!
wmch85 当前离线   回复时引用此帖
旧 2008-05-17, 15:20   #2
wmch85
普通会员
 
注册日期: 2008-03-20
年龄: 41
帖子: 30
声望力: 18
wmch85 正向着好的方向发展
默认

真是太伤心了,练连续两个问题都没人理
什么网站啊???连个讨论的人都没有

版主,请问,你们办这个论坛的宗旨是什么啊??
wmch85 当前离线   回复时引用此帖
旧 2008-05-17, 17:52   #3
shiqiang
高级会员
 
shiqiang 的头像
 
注册日期: 2008-02-26
年龄: 38
帖子: 158
声望力: 25
shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦
默认

呵呵,抱歉呀,同学,那你加我QQ,咱两商量一下,我最近有些忙,有些问题没时间看,请原谅。
__________________
学我想学,用我所学。:lovely:
shiqiang 当前离线   回复时引用此帖
旧 2008-05-17, 19:25   #4
yhcode
高级会员
 
注册日期: 2008-05-13
年龄: 44
帖子: 232
声望力: 21
yhcode 正向着好的方向发展
默认

这个应该不难吧,弄个等比数列求和公式 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)

上面的代码没用经过验证,不过应该没有问题,呵呵!
yhcode 当前离线   回复时引用此帖
旧 2008-05-19, 09:16   #5
tolabfans
普通会员
 
注册日期: 2008-02-29
年龄: 44
帖子: 92
声望力: 19
tolabfans 正向着好的方向发展
默认

引用:
作者: yhcode 查看帖子
这个应该不难吧,弄个等比数列求和公式 sum = a1*(1-q^n)/(1-q)
function result = dengbi_sum(q,startind,endind)
a1 = q^startind;
t = 1 - q^(endind - startind);
result ...
没有通用性
tolabfans 当前离线   回复时引用此帖
旧 2008-05-19, 16:35   #6
wmch85
普通会员
 
注册日期: 2008-03-20
年龄: 41
帖子: 30
声望力: 18
wmch85 正向着好的方向发展
默认

引用:
作者: yhcode 查看帖子
这个应该不难吧,弄个等比数列求和公式 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

希望与大家共同进步!!
谢谢大家!

前面由于着急出言不逊希望版主莫怪!
wmch85 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 11:22


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.