![]() |
[求助]不用循环的形式求出和式的值
如题,写出
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 请指点,不胜感激!! |
真是太伤心了,练连续两个问题都没人理
什么网站啊???连个讨论的人都没有 版主,请问,你们办这个论坛的宗旨是什么啊?? |
呵呵,抱歉呀,同学,那你加我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) 上面的代码没用经过验证,不过应该没有问题,呵呵! |
[QUOTE=yhcode;10931]这个应该不难吧,弄个等比数列求和公式 sum = a1*(1-q^n)/(1-q)
function result = dengbi_sum(q,startind,endind) a1 = q^startind; t = 1 - q^(endind - startind); result ...[/QUOTE] 没有通用性 |
[QUOTE=yhcode;10931]这个应该不难吧,弄个等比数列求和公式 sum = a1*(1-q^n)/(1-q)
function result = dengbi_sum(q,startind,endind) a1 = q^startind; t = 1 - q^(endind - startind); result ...[/QUOTE] 非常感谢,你给我提供了一个全新的思路。 通过这几天的努力,我自己便出了一个具有通适性的迭代代码。为感谢大家的帮助,特贴出来和大家共享。只要是迭代问题,只需做小的更改即可。程序代码如下(经过验证): function s=findsum(k) if k==0 s=1; else s=1+2*findsum(k-1); end 希望与大家共同进步!! 谢谢大家! 前面由于着急出言不逊希望版主莫怪! |
所有时间均为北京时间。现在的时间是 03:14。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.