日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

c语言中的关于数学问题的编程,C语言中具有代表性几种数学问题编程技巧探索.doc...

發(fā)布時(shí)間:2025/4/16 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言中的关于数学问题的编程,C语言中具有代表性几种数学问题编程技巧探索.doc... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C語言中具有代表性幾種數(shù)學(xué)問題編程技巧探索

C語言中具有代表性幾種數(shù)學(xué)問題編程技巧探索

[摘要]本文分析了C語言中幾種常見的具有代表性的幾類數(shù)學(xué)問題,從數(shù)學(xué)規(guī)律、語法結(jié)構(gòu)分析、語句優(yōu)化設(shè)計(jì)及應(yīng)用方面,探索同一類編程問題的編程方法和技巧。

[關(guān)鍵詞]數(shù)學(xué)問題;技巧;規(guī)律

[作者簡(jiǎn)介]高大菊(1983-),女,漢族,滁州城市職業(yè)學(xué)院助教。

在C語言程序設(shè)計(jì)過程中,很多的程序設(shè)計(jì)問題和數(shù)學(xué)問題是緊密聯(lián)系的,怎樣分析數(shù)學(xué)規(guī)律,靈活地使用C語言的幾種結(jié)構(gòu)來實(shí)現(xiàn)編程目的,往往帶給高職學(xué)校的學(xué)生不少編程困難,現(xiàn)就在學(xué)習(xí)實(shí)踐中對(duì)幾種常見的具有代表性的數(shù)學(xué)問題的編程技巧總結(jié)一二。

一、序列問題

經(jīng)常遇到這樣的問題:給一組有一定規(guī)律的序列,然后求前n項(xiàng)的和或積的問題,這里簡(jiǎn)稱序列問題。這類問題在編程中可以利用以下兩點(diǎn)技巧:①遇求和設(shè)0自加,遇求積設(shè)1自乘,遇異號(hào)乘-1。②研究數(shù)字規(guī)律。

在設(shè)計(jì)時(shí),如果遇到很多項(xiàng)相加求和的情況,這時(shí)可以設(shè)一個(gè)變量,令其初始值為0,然后做自加運(yùn)算,達(dá)到求和的目的;同樣,如果遇到很多項(xiàng)相乘求積的情況,可以設(shè)一個(gè)變量,令其初始值為1,然后做自乘運(yùn)算,達(dá)到求積的目的;遇到一次加一次減即每一項(xiàng)符號(hào)不一樣的情況,可以直接乘-1,達(dá)到改變符號(hào)目的,最后再找出前一項(xiàng)和后一項(xiàng)之間的聯(lián)系,找到變化規(guī)律,這樣問題就容易解決了。

例題:有一分?jǐn)?shù)序列:1/3-1/3*2/5+1/3*2/5*3/7-1/3*2/5*3/7*4/9+…….求其前20項(xiàng)之和。

分析:這個(gè)例題首先看成是一個(gè)求和運(yùn)算,可以設(shè)變量s=0,然后通過S+=來求和,認(rèn)真分析每一項(xiàng),會(huì)發(fā)現(xiàn)每一項(xiàng)又需要求積運(yùn)算,可以設(shè)變量t=1,做t*=來求積,而且每隔一項(xiàng)符號(hào)就要變化一次,可以設(shè)一個(gè)符號(hào)變量m,每次與-1相乘自然符號(hào)達(dá)到變化要求。最后就剩下分析規(guī)律了,通過分析可以發(fā)現(xiàn),每一項(xiàng)比前一項(xiàng)多出的部分中分子,分母之間都有a=a+1,b=b+2的規(guī)律,這樣問題就好解決了。程序設(shè)計(jì)如下:

main( )

{float s=0,t=1;

intm=1,i,a=1,b=3;

for(i=1;i<=20;i++)

{ t* = a/b; s += m*t;m=(-1)*m; a=a+1; b=b+2;}

printf(“s=%9.6f\n”,s);

}

二、數(shù)字拆分問題

在C語言中,也經(jīng)常接觸到所謂的水仙花數(shù),還有改變一個(gè)數(shù)據(jù)數(shù)字位置這樣一類的問題,這些問題都需要將組成數(shù)據(jù)的每個(gè)數(shù)字作為一個(gè)獨(dú)立的個(gè)體來看,達(dá)到設(shè)計(jì)目的,拆分技巧歸納如下:數(shù)據(jù)除最高位數(shù)(如個(gè)位,百位、千位等)得最高位數(shù)字,剩余數(shù)據(jù)繼續(xù)除,除到個(gè)位才停止。

例如將一個(gè)三位正整數(shù)n拆分。

分析:n是一個(gè)三位數(shù),那么最高位是百位,所以求百位數(shù)字的時(shí)候直接除100即可,依次類推,一直除到個(gè)位就可得出三個(gè)數(shù)字了。類似的問題可以用同樣的方法解決。部分程序設(shè)計(jì)如下:

if(n>=100&&n<1000)

{i=n/100;(*求百位數(shù)字*)

j=(n-i*100)/10;(*求十位數(shù)字*)

k=(n-i*100-j*10)/1;(*求個(gè)位數(shù)字*)

}(注意:這里n,i,j,k均定義為int型,兩個(gè)整形數(shù)據(jù)相除結(jié)果必為整。)

三、遞歸問題

C語言中會(huì)遇到很多的遞歸問題,有時(shí)需要多次重復(fù)循環(huán)或調(diào)用執(zhí)行某個(gè)語句。關(guān)于遞歸的問題,第一步應(yīng)該將問題簡(jiǎn)單化,將問題的規(guī)模縮小到最小,第二步,將問題分解為若干個(gè)小問題,然后通過描述這些較小問題解決原來較大問題的算法。我們?cè)O(shè)計(jì)時(shí)要注意兩個(gè)條件:(1)遞歸形式,(2)遞歸結(jié)束條件,根據(jù)這兩個(gè)條件再寫循環(huán)體或遞歸函數(shù)。

請(qǐng)看下面的例題:

猴子吃桃問題。猴子第一天摘下若干桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個(gè)。第二天又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了錢一天剩下的一半零一個(gè)。到第10天早上再想吃時(shí)就剩下一個(gè)桃子了,求第一天共摘多少桃子。

分析:(1)到第十天的時(shí)候只剩下一個(gè)桃子,所以結(jié)束條件:f(10)=1。

(2)后一天的桃子數(shù)目總是等于前一天數(shù)目的1/2再減1,所以f(n+1)= f(n)/2-1,也就是f(n)=(f(n+1)+1)*2。

因?yàn)榇藛栴}是一個(gè)從后往前推導(dǎo)的問題,所以在利用循環(huán)結(jié)構(gòu)設(shè)計(jì)時(shí),應(yīng)該從第9天循環(huán)開始,通過9次的循環(huán),數(shù)字不停的疊加,最后一次就可以求出第一天的桃子總數(shù)了,見程序A。

利用遞歸函數(shù)設(shè)計(jì)時(shí),首先還是把握住上面分析的兩個(gè)條件,將這兩個(gè)條件通過判斷的方法寫在遞歸函數(shù)中,通過主函數(shù)來調(diào)用,再用變量將返回值輸出即可。見程序B。

main( )

{ int day=9,x1,x2=1; ea

總結(jié)

以上是生活随笔為你收集整理的c语言中的关于数学问题的编程,C语言中具有代表性几种数学问题编程技巧探索.doc...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。