1樓:智慧型有一筐
題目:計算1-1/2+1/3-1/4……+1/99-1/100的結果
邏輯分析:
這是乙個有規律的混合表示式。加減號交替出現,分子不變,分母依次遞增
所以可以用乙個迴圈來完成計算
文中「s8:若deno小於或等於100,返回s4;否則,結束」就是迴圈的判定條件和迴圈範圍——100次,s4 s5 s6 s7是迴圈體
變數分析:
sigh —— 符號
sum —— 和,也就是計算結果
deno —— 分母
term —— 乙個分數
**還原:
(這段**流程是對的,細節是錯的,後面會說)
void main(void)
while(deno <= 100); //s8
}**分析:
表面看是對的,但有兩個問題
1、float浮點型別是不精確的
2、因為deno是int型別,所以1/deno恒為0
對於第2點,可以勉強用一堆強制型別轉換搞定
但是因為第1點,即使轉為了float或doublefloat,結果也是不夠精確的
因為在每次計算1/deno時,誤差都在累積
綜上,樓主的演算法在對計算結果有較高要求時,不適合用c語言來實現
若一定要用c來計算乙個較為精確的結果,我們就得用c中的精確型別來計算——int
首先假設2、3、4、5…100所有分母的最小公倍數是n
然後把計算式改寫:(n-n/2+n/3-n/4+…+n/99-n/100)/n
改寫後每乙個分數計算式的結果就都是整數了,誤差消除了
唯一的誤差產生位置是括號外的「/n」
所以這樣計算出來的結果比較精確
至於最小公倍數的計算方法,我記得書上應該有,樓主自己查查吧 (^_^)v
2樓:忍城暗影忍者
呃…………首先我也沒弄懂你這題的運算方法……是1-1/2+1/3麼?
還有,s7是不是deno=deno+2?sum按理說是和值,可是s6卻並非將和累加,而是操作term,這就讓我不解了……按理說應該是sum=sum+term吧…………
我感覺這個想法好亂…………我說說我的想法吧……應該也差不多……s1:sigh=1
s2:sum=1
s3:deno=2
s4:sigh=(-1)*(1/deno)s5:term=sigh*(1/(deno-1))s6:sum=sum+term
s7:deno=deno+2
s8:若deno小於或等於100,返回s4;否則,返回sum的值,結束。
跪求c++教學**或者論壇~~郝斌的太磨嘰,譚浩強據說是誤導教學。我有一些c語言基礎語法,謝謝分享 30
現有一道高一數學例題,在該例題的第二種解法中,有些地方看不懂,不知能不能請大家幫忙給指教一下
解法二的bai思路就是考du慮正弦函式 值相同的角zhi的關係,兩個角 dao,如果正弦值相同回 的話那麼就有 答 2n 1 或者 2n 綜合一下 就是 k k為奇數 k k為偶數 所以可以寫成 k 1 k k z接下來只要把4x和5x分別替代 和 就好了 sin5x sin4x 則5x k 1 k...
一道遺產的例題 求詳細的答案,簡述遺產的概念和範圍
首先要對三萬元存款進行認定,是夫妻共同財產還是甲個人財產。如果是共同的,應該拿出一萬五按照法定繼承順序分配,即一子一女,父母和妻子五人分這一萬五。如果認定是甲個人財產,那麼這三萬由上述五人分配,其弟不參與分配。你好。根據 中華人民共和國繼承法 處理結果 乙 子女二人 父母二人平分,各六千,其弟屬於第...
一道物理題的解答中有地方看不懂,一道物理題的解答中有乙個地方看不懂
這個m v 這是體積符號 體積 橫截面積 高。這道題中求的是單位時間內的質量,所以高 速度 時間,以為是單位時間,所以t 1 所以就演變成以上的試子。一道高二物理題,有解析,但是有乙個地方不懂,望解答!這裡涉及到兩種分析方法 整體分析和隔離分析 整體法要求物體各個部位的運動狀態都相同,或者是加速度相...