在c語言中,對於累計的考察是十分頻繁的,在選擇、程式題中,總能見到累計問題的身影,比如最為簡單的累計求和:1+2+3+4+....+100,再者斐波那契數列1+2+3+5+8+13+21+.......下面針對累計問題,系統的、從簡到繁的帶著大家梳理一邊
首先,我們要明確,在程式中一看到sum=sum+i;s+=a;s+=a[i]等形式的式子,我們就要迅速聯想到這題目是與累計問題相關的。
例如:for(i=1;i<=10;i++)m=m+i;
for(i=0;i<=9;i++)
不難發現,設計累計問題的,都會有乙個類似sum=sum+乙個變數的式子,這就是我們解題的關鍵,甚至遇到此類題,我們可以先寫上sum=sum+乙個變數,然後去找具體的這個變數是什麼就可以了。
題型1:累計求和1+2+3+4+5+6+.....+100
解析:首先寫上sum=sum+i;(i是我們用來累加的乙個變數)i是從1到100增加的,所以我們可能用for(i=1;i<=n;i++)來控制
程式為int i,sum=0;
for(i=1;i<=100;i++)
題型二:正負交替問題1-2+3-4+5-6+.......+99-100
解析:其實正負交替問題,可以看作是累計求和的一種,我們還是先寫上sum=sum+i;在本題中,i不僅僅是從1到100增加的,還是正負交替變化的變化,那麼我們就先實現從1到100增加,和上題一樣,我們可能用for(i=1;i<=n;i++),程式寫到這裡,就和上題是一樣的:
int i,sum=0;
for(i=1;i<=n;i++)
那正負交替如何實現呢,我們需要引用另外乙個變數t=1,讓t在迴圈體內實現正負的變化,即t=-t,所以最終程式為
int i,sum=0,t=1;
for(i=1;i<=100;i++)
解法2:陣列
int arr[20] = ,sum=0;
int i = 0;
for (i = 2; i < 20; i++)
arr[i] = arr[i - 1] + arr[i - 2];
for (i = 0; i < 20; i++)
sum=sum+arr[i];
printf("%d",sum);
題型四:階乘求1!+2!+3!+4!+......+10!
解析:首先,我們還是寫上sum=sum+乙個數t,我們再來找這個數t,
int i,t=1,sum=0;/*定義變數的資料型別為整型*/
for(i=1;i<=10;i++)/*計算每個階乘的值並累加*/
/*把每個階乘的值累加*/
printf("%d\n",sum);/*輸出結果*/
題型五:分子數列 2/1+3/2+5/3+8/5+......求前十項的和
解析:我們還是先寫上 sum=sum+t,然後來找這個t是什麼
根據題型3,我們可以看出,b/a正是我們要找的t.
所以int a=1,b=2,c,i;
float t,sum=0;
for(i=1;i<=10;i++)
printf("%f",sum);
#inclu
int main()
printf("第%d個學生的總分=%.2f 平均分=%.2f\n",i+1,s,s/7);}
春考有約,你與大學的約定
安徽省高等院校大全
萬博科技職業學院 三聯學院 中國科學技術大學 亳州師專 亳州職業技術學院 六安職業技術學院 合肥資訊科技職業學院 合肥共達職業技術學院 合肥學院 合肥工業大學 合肥師範學院 合肥幼兒師範高等專科學校 合肥濱湖職業技術學院 合肥科技職業學院 合肥財經職業學院 合肥通用職業技術學校 安慶醫藥高等專科學校...
安徽省大資料產業聯盟成立
9月30日下午,安徽省大資料產業聯盟成立大會暨2017大資料蜀峰論壇在蜀山經開區舉行。省經信委副主任王有軍,副市長王文松出席會議。安徽省大資料產業聯盟是在省經信委指導和支援下,由致力於大資料研發 資源管理和應用推廣的企事業單位 科研機構和社會團體等自願組成。聯盟以 開放合作 共享共贏 為原則,以匯聚...
2023年安徽省ACM 問題 B 紙牌識別
問題 b 紙牌識別 時間限制 3 sec 記憶體限制 128 mb 題目描述 alice沉迷於機械人研究,他打算做 個機械人來檢查 副撲克是否完整。現在,他想請你幫他寫 乙個程式,來識別紙牌,每張紙牌都有 個花色 四種花色,分別用大寫字母p,k,h,t表示 和一乙個數字點數 1 13 紙牌可以用ab...