按要求寫c 或c語言程式。高效演算法等比數列求和

2021-12-24 01:31:09 字數 3835 閱讀 6898

1樓:網事如風

輸入的a n越大 , 等待其輸出結果的時間就越長#include

#include

void main()

while(a<0||a>pow(10,16));

dowhile(n<0||n>pow(10,9));

dowhile(m<1||m>pow(10,9));

for(i=0;i<=n;i++)

sum+=pow(a,i);

while(sum>=m)

printf("%f\n",sum);}

2樓:匿名使用者

典型的動態規劃。小意思。

/** file name : testcpp.cpp

** code by : if

** project name :

** create datetime: 2011-02-22 06:53:22

*/#include

#include

#include

using namespace std;

size_t twodtooned(size_t column_num, size_t line, size_t column_index)

int max(int a, int b)

int calculate(size_t n, size_t m, int nums);

int main()

numbers = new int[n * m];

srand(time(null) );

for (size_t i = 0; i < n*m; i++)

for (size_t i = 0; i < n; i++)

cout << endl;

}cout << calculate(n, m, numbers) << endl;

delete numbers;

}return 0;

}// n行 m列

int calculate(size_t n, size_t m, int nums)

if (0 == i)

if (0 == j)

max_sums[twodtooned(m, i, j)] += max(max_sums[twodtooned(m, i, j - 1)], max_sums[twodtooned(m, i - 1, j)]);}}

result = max_sums[twodtooned(m, n-1, m-1)];

delete max_sums;

return result;}

3樓:匿名使用者

#include

#include

int main(void)

printf("%.0lf\n",s);

system("pause");

return 0;

}dev-cpp執行通過

正確性有待驗證。。。。

怎麼用c語言寫等比數列求和

4樓:匿名使用者

//vc 6.0 執行很好,tc不知道,按照tc模式寫的#include

int main()

printf("%ld\n",sum);}

5樓:

#include

void main()

printf("%d\n", sum);

} tc編東西太枯燥 直接用vc編就行

6樓:匿名使用者

int main()

printf("%ld", sum);}

關於c++中的等差數列和等比數列求和的程式設計問題???

7樓:人人**短**

這就是用迴圈完成,我也不知道能不能說是模板,例如第一個:

int nsum;

for(nsum = 0, int i = 1; i <= n; i++) // n為定義的一個值,即你給的公式的最後一個n的值。

nsum += 2*i-1;

優化:由於是2*i,所以用移位更好:nsum += (i << 1) - 1;再有,由於每次減的都是常數1,乘的也是常數,所以可以這樣寫,更快:

int nsum;

for(nsum = 0, int i = 1; i <= n; i++)

nsum += i;

nsum = nsum << 1;

nsum -= (n+1);

其實這基本這已經將求和公式寫出來了,所以當然,你也可以用公式將它們計算出來,這樣更快。

再如第二個:

long nproduct = 0;

for(int i = 0; i <= n; i++)

nproduct += 5 * power(2, i);

優化:不要呼叫power,用移位:nproduct += 5 *( 1 << i);

根據第一個思路,進一步優化你自己也應該知道了吧。。。

等比數列求和公式是什麼?

8樓:

求和公式

等比級數若收斂,則其公比q的絕對值必小於1。

故當n趨向於無窮時,等比數列求和公式中q的n次方趨於0(|q|<1),此時sn=a1/(1-q)。

q大於1時等比級數發散。

等比數列(又名幾何數列):是一種特殊數列。它的特點是:從第2項起,每一項與前一項的比都是一個常數。

求和公式推導:(1)sn=a1+a2+a3+...+an(公比為q)(2)qsn=a1q + a2q + a3q +...

+ anq = a2+ a3+ a4+...+ an+ a(n+1)

(3)sn-qsn=(1-q)sn=a1-a(n+1)(4)a(n+1)=a1qn

(5)sn=a1(1-qn)/(1-q)(q≠1)

9樓:雨說情感

求和公式

求和公式推導:

(1)sn=a1+a2+a3+...+an(公比為q)(2)qsn=a1q + a2q + a3q +...+ anq = a2+ a3+ a4+...+ an+ a(n+1)

(3)sn-qsn=(1-q)sn=a1-a(n+1)(4)a(n+1)=a1qn

(5)sn=a1(1-qn)/(1-q)(q≠1)擴充套件資料每層塔所掛的燈的數量形成一個等比數列,公比q=2,我們設塔的頂層有a1盞燈。7層塔一共掛了381盞燈,s7=381,按照等比求和公式,  那麼有a1乘以1-2的7次方,除以1-2,等於381.能解出a1等於3.

 尖頭必有3盞燈。

10樓:匿名使用者

首項為a1,等比為q,則前n項和sn=a1(1-q^n)/(1-q);

11樓:我不是他舅

首項是a1

公比是q且q≠1

則sn=a1(1-q^n)/(1-q)

若q=1則sn=na1

12樓:

sn=a1(1-q^n)/(1-q)

等差數列的c語言程式怎麼編寫

13樓:匿名使用者

#include

int main()

printf("\n");

return 0;

}只是顯示了一下,我也不知道你到底要幹什麼,是不是這個?

資料結構演算法c語言描述和c或c程式具體什麼關

1 程式是寫完源 後,計算機編譯後得到的可執行檔案。2 演算法一般結合數學思想,以下內容算是演算法 給陣列按大小排序 查詢陣列某元素 圖形處理演算法 音訊識別處理。但廣義上,用了順序分支迴圈就是演算法。演算法是指邏輯層面上解決問題方法的一種描述,一個演算法可以被很多不同的程式實現.演算法並不是程式或...

求數字分組演算法,請使用C或C 語言

我的想法比較簡單。你可以將這個演算法寫成遞迴形式,第一層做組合挑選,共2 n種,第二層2 n 1種.這樣可以挑選所有的組合情況,最後再比較,挑選。程式比較容易實現,但是我擔心效率。如果需要進行智慧處理,最好的方式是在遞迴過程中新增判斷和 這樣會提高效率,儘快搜尋到好的結論。n的範圍有多大啊?n 10...

關於擴充套件歐幾里德演算法的c語言程式

什麼歐幾里德的?哈哈 忘了。你說下 用c語言編寫擴充套件歐幾里德演算法用來求乘法逆元ab 1 mod n 要求我輸入b,n,求出a。請編譯執行通過,謝謝啦 include int extendedeuclid int f,int d int result int main int extendede...