C++第4次實驗(基礎班)—迴圈結構程式設計

來源:互聯網
上載者:User

標籤:數列   microsoft   顏色搭配   奧數題   變數   c++   項目   csdn   偶數   

此次上機中的4個題目項目6、項目7(選1)必做。其他2兩題可從剩下的項目中選,也可從項目7中選。

【項目1:利用迴圈求和】求1000以內全部偶數的和(答案:250500)

要求:請編出3個程式來,分別用三種迴圈語句完畢,注意體會各種迴圈語句的運行過程及文法特點。

【項目2-分數的累加】編程式,輸出1/3-3/5+5/7-7/9…+19/21的結果(答案:-0.383842)
提示:假設直接解決上面的問題有困難,能夠設計一條“由易到難”的路線,逐漸解決當中要解決的問題。讓自己的思路明朗起來。


(1)1+2+...+20  ——這個應該會
(2)1+1/2+1/3+…+1/20  ——分數的累加。注意兩個整型相除,商也為整型,而顯然求和結果應該是小數
(3)1/2+2/3+3/4+…+19/20  ——分子不全是1了,找找規律,稍加修改就好了
(4)1/2-2/3+3/4-…+19/20   ——要累加的值一正一負倒騰。用pow(-1,i)是個效率非常低的做法,不推薦使用。

技巧:專門設定一個變數s表示累加項的符號,取值隨著迴圈,每次乘以-1。從而在+1、-1之間變化,迴圈加求和的累加要用累加的項(i/(i+1))乘以這個表示符號的s。


(5)1/3-3/5+5/7-7/9…+19/21  ——這是我們的目標

【項目3:乘法口訣表】編程式。輸出一個乘法口訣表,形如
1x1=1
1x2=2  2x2=4  
1x3=3  2x3=6  3x3=9
……

【項目4:輸出完數】一個數假設恰好等於它的因子之和,這個數就稱為“完數”。

比如6=1+2+3。再如8的因子和是7(即1+2+4),8不是完數。編程找出1000以內的全部完數。(答案:6  28  496)
提示:首先從2到1000構造迴圈控制變數為i的外層迴圈。每次迴圈中。利用內嵌的迴圈逐個地求出i的因子,並累加起來(為提高效率,可能的因子從1到i/2)。假設因子和等於i,則說明是全然數,輸出。

然後繼續迴圈,考察i+1……

【項目5:貪財的富翁】一個百萬富翁遇到一個陌生人。陌生人找他談一個換錢的計劃,該計劃例如以下:我每天給你十萬元。而你第一天僅僅需給我一分錢。第二天我仍給你十萬元,你給我兩分錢,第三天我仍給你十萬元,你給我四分錢,....,你每天給我的錢是前一天的兩倍,直到滿一個月(30天),百萬富翁非常高興,欣然接受了這個契約。請編程式,通過計算說明,這個換錢計劃對百萬富翁是否是個划算的交易。(答案:陌給富:3e+006,富給陌:1.07374e+007   富翁虧了)
提示:(1)須要計算出30天后陌生人給了百萬富翁多少錢,百萬富翁給了陌生人多少錢,然後才幹做出推斷;(2)想要看得清楚,能夠選擇列出每一天,兩方交易獲得的錢數。(3)給出參考解答,將每天累計給對方的錢列出來。非常直觀。



【項目6:輸出星號圖】編程式輸出。

 

【項目7:窮舉法解決組合問題】(當然,全做完收效更好)

先閱讀例題,領會窮舉法(意為“窮盡式列舉”,也稱枚舉)的思想,然後自行選題進行解決,掌握這樣的程式設計的一般方法。

例題:小明有五本新書。要借給A,B,C三位小朋友,若每人每次僅僅能借一本,則能夠有多少種不同的借法?

問題分析與演算法設計:本問題實際上是一個排列問題。即求從5個中取3個進行排列的方法的總數。首先對五本書從1至5進行編號。然後使用窮舉的方法。

如果三個人分別借這五本書中的一本,當三個人所借的書的編號都不同樣時,就是滿足題意的一種借閱方法。

以下是程式及其凝視,要注意利用三重迴圈“窮舉”:

#include <iostream> using namespace std;int main(){int a,b,c,count=0;cout<<"小明借書給三位小朋友書的方案有:"<<endl;for(a=1;a<=5;a++)//窮舉a借5本書中的1本的所有情況for(b=1;b<=5;b++)//窮舉b借5本書中的一本的所有情況for(c=1;c<=5;c++)//窮舉c借5本書中的1本的所有情況if(a!=b&&c!=a&&c!=b) //推斷三個人借的書是否不同,(a-b)*(b-c)*(c-a)!=0更好{++count;cout<<count<<": "<<a<<", "<<b<<", "<<c<<endl;//輸出方案}return 0;}

任務:利用窮舉的方法解決以下的問題(選做一道即算完畢任務,其它能夠抽時間自由安排。多做會使你更聰明。)

(1)百錢百雞問題:中國古代數學家張丘建在他的《算經》中提出了著名的“百錢買百雞問題”:雞翁一,值錢五,雞母一。值錢三,雞雛三。值錢一,百錢買百雞,問翁、母、雛各幾何?

提示:設雞翁、雞母、雞雛的個數分別為x,y,z,題意給定共100錢要買百雞,若全買公雞最多買20僅僅,顯然x的值在0~20之間;同理,y的取值範圍在0~33之間。可得到以下的不定方程:

5x+3y+z/3=100

x+y+z=100

所以此問題可歸結為求這個不定方程的整數解。

參考答案:

雞翁0僅僅,雞母25僅僅。雞雛75僅僅。


雞翁4僅僅,雞母18僅僅。雞雛78僅僅。
雞翁8僅僅。雞母11僅僅,雞雛81僅僅。
雞翁12僅僅。雞母4僅僅,雞雛84僅僅。

(2)年齡幾何:張三、李四、王五、劉六的年齡成一等差數列。他們四人的年齡相加是26,相乘是880,求以他們的年齡為前4項的等差數列的前20項。

提示:設數列的首項為n,項差為a,則前4項之和為n+(n+a)+(n+a+a)+(n+a+a+a)=4*n+6*a",前4 項之積為n*(n+a)*(n+a+a)*(n+a+a+a)。同一時候有1<=a<=4和1<=n<=6。可採用窮舉法求出此數列。

參考答案:2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59

(3)三色球問題:若一個口袋中放有12個球。當中有3個紅的。3個白的和6個黒的,問從中任取8個共同擁有多少種不同的顏色搭配?

提示:設任取的紅球個數為i,白球個數為j,則黒球個數為8-i-j。依據題意紅球和白球個數的取值範圍是0~3,在紅球和白球個數確定的條件下,黒球個數取值應為8-i-j<=6。

參考答案:

不同的顏色搭配有:
紅球:0,白球:2,黑球:6
紅球:0,白球:3,黑球:5
紅球:1,白球:1,黑球:6
紅球:1,白球:2,黑球:5
紅球:1,白球:3,黑球:4
紅球:2,白球:0,黑球:6
紅球:2,白球:1,黑球:5
紅球:2,白球:2,黑球:4
紅球:2,白球:3,黑球:3
紅球:3,白球:0,黑球:5
紅球:3,白球:1,黑球:4
紅球:3,白球:2,黑球:3
紅球:3,白球:3,黑球:2

(4)在以下的加法算式中,不同的符號代表不同的數字。同樣的符號代表同樣的數字。

請設計程式求出"都、要、學、C"4個符號分別代表的數字。


提示:讓電腦解奧數題。窮舉"都、要、學、C"4個符號分別代表的數字(從0到9)。然後進行組合,假設組合起來符合規則(不同的符號代表不同的數字。同樣的符號代表同樣的數字,且使等式成立),則為正解。

參考答案:

都:1 要:4 學:6 C:7
都:1 要:5 學:0 C:2

(5)有等式[※×(※3+※)]^2=8※※9,當中※處為1個數字,滴上了墨水無法辨認。請編程找出※表示哪個數字。

拓展:有等式[※×(※3○※)]^2=8※※9。當中※處為1個數字,○處為+、-、×、÷四個運算子之中的一個,現滴上了墨水無法辨認。

請編程找出※表示哪個數字,○表示哪個運算子。

參考答案

等式為:[1×(93+0)]^2=8649
等式為:[3×(23+8)]^2=8649

C++第4次實驗(基礎班)—迴圈結構程式設計

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.