


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.1.抓交通肇事犯一輛卡車違反交通規(guī)則, 撞人后逃跑。現(xiàn)場有三人目擊事件, 但都沒有記住車號, 只記下車號的一些特征。甲說:牌照的前兩位數(shù)字是相同的; 乙說:牌照的后兩位數(shù)字是相同的, 但與前兩位不同;丙是數(shù)學家,他說:四位的車號剛好是一個整數(shù)的平方。請根據(jù)以上線索求出車號。* 問題分析與算法設計按照題目的要求造出一個前兩位數(shù)相同、 后兩位數(shù)相同且相互間又不同的整數(shù), 然后判斷該整數(shù)是否是另一個整數(shù)的平方。* 程序說明與注釋#include<stdio.h>#include<math.h>int main()int i,j,k,c;for(i=1;i<=9;i+)
2、 /*i:車號前二位的取值*/for(j=0;j<=9;j+) /*j:車號后二位的取值*/if(i!=j) /*判斷二位數(shù)字是否相異*/k=i*1000+i*100+j*10+j; /*計算出可能的整數(shù)*/for(c=31;c*c<k;c+); /*判斷該數(shù)是否為另一整數(shù)的平方*/if(c*c=k) printf("Lorry No. is %d.n",k); /* 若是,打印結(jié)果*/* 運行結(jié)果Lorry _No.is 77442百錢百雞問題中國古代數(shù)學家張丘建在他的算經(jīng)中提出了著名的“百錢買百雞問題” :雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢
3、買百雞,問翁、母、雛各幾何?* 問題分析與算法設計設雞翁、雞母、雞雛的個數(shù)分別為x,y,z,題意給定共100 錢要買百雞,若全買公雞最多買20 只,顯然x 的值在 020 之間;同理,y 的取值范圍在033 之間,可得到下面的不定方程:5x+3y+z/3=100x+y+z=100所以此問題可歸結(jié)為求這個不定方程的整數(shù)解。由程序設計實現(xiàn)不定方程的求解與手工計算不同。 在分析確定方程中未知數(shù)變化范圍的前提下,可通過對未知數(shù)可變范圍的窮舉,驗證方程在什么情況下成立,從而得到相應的解。* 程序說明與注釋#include<stdio.h>int main()int x,y,z,j=0;pri
4、ntf("Folleing are possible plans to buy 100 fowls with 100 Yuan.n");.for(x=0;x<=20;x+) /*外層循環(huán)控制雞翁數(shù)*/for(y=0;y<=33;y+) /*內(nèi)層循環(huán)控制雞母數(shù)y 在 033 變化 */z=100-x-y; /* 內(nèi)外層循環(huán)控制下,雞雛數(shù)z 的值受 x,y 的值的制約 */if(z%3=0&&5*x+3*y+z/3=100)/* 驗證取 z 值的合理性及得到一組解的合理性*/printf("%2d:cock=%2d hen=%2d chic
5、ken=%2dn",+j,x,y,z);3三色球問題若一個口袋中放有12 個球,其中有3 個紅的。 3 個白的和6 個黒的,問從中任取8 個共有多少種不同的顏色搭配?* 問題分析與算法設計設任取的紅球個數(shù)為 i ,白球個數(shù)為 j ,則黒球個數(shù)為 8-i-j ,根據(jù)題意紅球和白球個數(shù)的取值范圍是 03,在紅球和白球個數(shù)確定的條件下,黒球個數(shù)取值應為8-i-j<=6 。* 程序說明與注釋#include<stdio.h>int main()int i,j,count=0;printf(" RED BALL WHITE BALL BLACKBALLn"
6、);printf("n"); .for(i=0;i<=3;i+) /*循環(huán)控制變量i 控制任取紅球個數(shù)0 3*/for(j=0;j<=3;j+) /*循環(huán)控制變量j 控制任取白球個數(shù)0 3*/if(8-i-j)<=6)printf(" %2d: %d %d %dn",+count,i,j,8-i-j);4馬克思手稿中的數(shù)學題馬克思手稿中有一道趣味數(shù)學問題:有30 個人,其中有男人、女人和小孩,在一家飯館吃飯花了 50 先令;每個男人花 3 先令,每個女人花 2 先令,每個小孩花 1 先令;問男人、女人和小孩各有幾人?* 問題分析與算法設
7、計設 x,y,z 分別代表男人、女人和小孩。按題目的要求,可得到下面的方程:x+y+z=30 (1)3x+2y+z=50 (2)用方程程序求此不定方程的非負整數(shù)解,可先通過(2)-(1) 式得:2x+y=20 (3)由(3) 式可知, x 變化范圍是010* 程序說明與注釋#include<stdio.h>int main();.int x,y,z,count=0;printf(" Men Women Childrenn");printf(".n");for(x=0;x<=10;x+)y=20-2*x; /*x定值據(jù) (3)式求 y*/
8、z=30-x-y; /* 由(1) 式求 z*/if(3*x+2*y+z=50) /*當前得到的一組解是否滿足式(2)*/printf(" %2d: %d %d %dn",+count,x,y,z);5新娘和新郞三對情侶參加婚禮,三個新郞為A、B、C,三個新娘為X 、Y 、Z 。有人不知道誰和誰結(jié)婚,于是詢問了六位新人中的三位,但聽到的回答是這樣的: A 說他將和 X 結(jié)婚; X 說她的未婚夫是 C;C 說他將和 Z 結(jié)婚。這人聽后知道他們在開玩笑,全是假話。請編程找出誰將和誰結(jié)婚。* 問題分析與算法設計將 A 、B 、C 三人用 1,2,3 表示,將 X 和 A 結(jié)婚表示
9、為“X=1 ”,將 Y 不與 A 結(jié)婚表示為“Y!=1 ”。按照題目中的敘述可以寫出表達式:x!=1 A 不與 X 結(jié)婚x!=3 X 的未婚夫不是Cz!=3 C 不與 Z 結(jié)婚題意還隱含著X 、Y 、Z 三個新娘不能結(jié)為配偶,則有:x!=y 且 x!=z 且 y!=z窮舉以上所有可能的情況, 代入上述表達式中進行推理運算, 若假設的情況使上述表達式的結(jié)果均為真,則假設情況就是正確的結(jié)果。* 程序說明與注釋#include<stdio.h>int main()int x,y,z;for(x=1;x<=3;x+) /*窮舉 x 的全部可能配偶*/for(y=1;y<=3;y
10、+) /*窮舉 y 的全部可能配偶*/for(z=1;z<=3;z+) /* 窮舉 z 的全部可能配偶*/if(x!=1&&x!=3&&z!=3&&x!=y&&x!=z&&y!=z) /*判斷配偶是否滿足題意*/printf("X will marry to %c.n",'A'+x-1); /*打印判斷結(jié)果*/printf("Y will marry to %c.n",'A'+y-1);printf("Z will marry
11、to %c.n",'A'+z-1);* 運行結(jié)果X will marry to B. (X與 B 結(jié)婚 )Y will marry to C. (Y與 C 結(jié)婚 );.Z will marry to A. (Z與 A 結(jié)婚 )6委派任務某偵察隊接到一項緊急任務,要求在 A 、B、C、D 、E、F 六個隊員中盡可能多地挑若干人,但有以下限制條件:1)A 和 B 兩人中至少去一人;2)A 和 D 不能一起去;3)A 、 E 和 F 三人中要派兩人去;4)B 和 C 都去或都不去;5)C 和 D 兩人中去一個;6)若 D 不去,則E 也不去。問應當讓哪幾個人去?* 問題分析
12、與算法設計用 A 、B 、 C、 D、 E、F 六個變量表示六個人是否去執(zhí)行任務的狀態(tài),變量的值為1,則表示該人去;變量的值為0,則表示該人不參加執(zhí)行任務,根據(jù)題意可寫出表達式:a+b>1 A 和 B 兩人中至少去一人;a+d!=2 A 和 D 不能一起去;a+e+f=2 A 、E、 F 三人中要派兩人去;b+c=0 或 b+c=2 B 和 C 都去或都不去;c+d=1 C 和 D 兩人中去一個;d+e=0 或 d=1 若 D 不去,則E 也不去 (都不去;或D 去 E 隨便 )。上述各表達式之間的關(guān)系為“與”關(guān)系。窮舉每個人去或不去的各種可能情況,代入上述表達式中進行推理運算,使上述表
13、達式均為“真”的情況就是正確的結(jié)果。* 程序說明與注釋#include<stdio.h>int main()int a,b,c,d,e,f;for(a=1;a>=0;a-) /* 窮舉每個人是否去的所有情況*/for(b=1;b>=0;b-) /*1:去 0:不去 */for(c=1;c>=0;c-)for(d=1;d>=0;d-)for(e=1;e>=0;e-)for(f=1;f>=0;f-)if(a+b>=1&&a+d!=2&&a+e+f=2&&(b+c=0|b+c=2)&&
14、;c+d=1&&(d+e=0|d=1)printf("A will%s be assigned. n",a?"":"not");printf("B will%s be assigned. n",b?"":"not");printf("C will%s be assigned. n",c?"":"not");printf("D will%s be assigned. n",d?&qu
15、ot;":"not");printf("E will%s be assigned. n",e?"":"not");printf("F will%s be assigned. n",f?"":"not");.* 運行結(jié)果A will be assigned. ( 去)B will be assigned. ( 去)C will be assigned. ( 去)D will not be assigned. ( 不去 )E will not be
16、assigned. ( 不去 )F will be assigned. ( 去 )7 50.誰在說謊張三說李四在說謊, 李四說王五在說謊, 王五說張三和李四都在說謊。 現(xiàn)在問:這三人中到底誰說的是真話,誰說的是假話?* 問題分析與算法設計分析題目, 每個人都有可能說的是真話,也有可能說的是假話,這樣就需要對每個人所說的話進行分別判斷。假設三個人所說的話的真假用變量A 、 B 、C 表示,等于1 表示該人說的是真話;表示這個人說的是假話。由題目可以得到:* 張三說李四在說謊 張三說的是真話: a=1&&b=0或 張三說的是假話:a=0&&b=1* 李四說王五在說謊
17、 李四說的是真話: b=1&&c=0或 李四說的是假話:b=0&&c=1* 王五說張三和李四都在說謊王五說的是真話:c=1&&a+b=0或 王五說的是假話:c=0&&a+b!=0上述三個條件之間是“與”的關(guān)系。將表達式進行整理就可得到C 語言的表達式:(a&&!b|!a&&b)&&(b&&!c|!b&&c)&&(c&&a+b=0|!c&&a+b!=0)窮舉每個人說真話或說假話的各種可能情況,代入上述表達式
18、中進行推理運算,使上述表達式均為“真”的情況就是正確的結(jié)果。* 程序說明與注釋#include<stdio.h>int main()int a,b,c;for(a=0;a<=1;a+)for(b=0;b<=1;b+)for(c=0;c<=1;c+)if(a&&!b|!a&&b)&&(b&&!c|!b&&c)&&(c&&a+b=0|!c&&a+b!=0)printf("Zhangsan told a %s.n",a?&q
19、uot;truth":"lie");printf("Lisi told a %s.n",b?"truch":"lie");printf("Wangwu told a %s.n",c?"truch":"lie");* 運行結(jié)果Zhangsan told a lie ( 張三說假話 )Lisi told a truch. ( 李四說真話 )Wangwu told a lie. ( 王五說假話 );.8黑與白有 A 、B、C、D、E 五人,每人額頭上都
20、帖了一張黑或白的紙。五人對坐,每人都可以看到其它人額頭上的紙的顏色。五人相互觀察后,A 說:“我看見有三人額頭上帖的是白紙,一人額頭上帖的是黑紙。 ” B 說:“我看見其它四人額頭上帖的都是黑紙。 ”C 說:“我看見一人額頭上帖的是白紙,其它三人額頭上帖的是黑紙。 ” D 說:“我看見四人額頭上帖的都是白紙。 ”E 什么也沒說。現(xiàn)在已知額頭上帖黑紙的人說的都是謊話, 額頭帖白紙的人說的都是實話。 問這五人誰的額頭是帖白紙,誰的額頭是帖黑紙?* 問題分析與算法設計假如變量 A 、B、C、D、E 表示每個人額頭上所帖紙的顏色,0 代表是黑色, 1 代表是白色。根據(jù)題目中 A 、B 、 C、 D 四
21、人所說的話可以總結(jié)出下列關(guān)系:A 說: a&&b+c+d+e=3|!a&&b+c+d+e!=3B 說: b&&a+c+d+e=0|!b&&a+c+d+e!=0C 說: c&&a+b+d+e=1|!c&&a+b+d+e!=1D 說: d&&a+b+c+e=4|!d&&a+b+c+e!=4窮舉每個人額頭所帖紙的顏色的所有可能的情況,代入上述表達式中進行推理運算,使上述表達式為“真”的情況就是正確的結(jié)果。* 程序說明與注釋#include<stdio.h>int
22、 main()int a,b,c,d,e;for(a=0;a<=1;a+) /*黑色: 0 白色: 1*/for(b=0;b<=1;b+) /*窮舉五個人額頭帖紙的全部可能*/for(c=0;c<=1;c+)for(d=0;d<=1;d+)for(e=0;e<=1;e+)if(a&&b+c+d+e=3|!a&&b+c+d+e!=3)&&(b&&a+c+d+e=0|!b&&a+c+d+e!=0)&&(c&&a+b+d+e=1|!c&&a+b
23、+d+e!=1)&&(d&&a+b+c+e=4|!d&&a+b+c+e!=4)printf("A is pasted a piece of %s paper on his forehead.n",a?"white":"black");printf("B is pasted a piece of %s paper on his forehead.n",b?"white":"black");printf("C is pas
24、ted a piece of %s paper on his forehead.n",c?"white":"black");printf("D is pasted a piece of %s paper on his forehead.n",d?"white":"black");printf("E is pasted a piece of %s paper on his forehead.n",e?"white":"black"
25、;);.* 運行結(jié)果A is pasted a paper of black paper on his forehead. ( 黑 )B is pasted a paper of black paper on his forehead. ( 黑 )C is pasted a paper of white paper on his forehead. ( 白 )D is pasted a paper of black paper on his forehead. ( 黑 )E is pasted a paper of white paper on his forehead. ( 白 )9誠實族和
26、說謊族是來自兩個荒島的不同民族,誠實族的人永遠說真話,而說謊族的人永遠說假話。迷語博士是個聰明的人,他要來判斷所遇到的人是來自哪個民族的。迷語博士遇到三個人, 知道他們可能是來自誠實族或說謊族的。 為了調(diào)查這三個人是什么族的,博士分別問了他們的問題,這是他們的對話:問第一個人: “你們是什么族?” ,答:“我們之中有兩個來自誠實族。”第二個人說: “不要胡說, 我們?nèi)齻€人中只有一個是誠實族的。 ”第三個人聽了第二個人的話后說: “對, 就是只有一個誠實族的。 ”請根據(jù)他的回答判斷他們分別是哪個族的。* 問題分析與算法設計假設這三個人分別為 A 、B、C,若說謊其值為 0,若誠實,其值為 1。根
27、據(jù)題目中三個人的話可分別列出:第一個人:a&&a+b+c=2|!a&&a+b+c!=2第二個人:b&&a+b+c=1|!b&&a+b+c!=1第三個人:c&&a+b+c=1|!c&&a+b+c!=1利用窮舉法,可以很容易地推出結(jié)果。* 程序說明與注釋#include<stdio.h>int main()int a,b,c;for(a=0;a<=1;a+) /* 窮舉每個人是說謊還是誠實的全部情況*/for(b=0;b<=1;b+) /*說謊: 0 誠實: 1*/for(c=0
28、;c<=1;c+)if(a&&a+b+c=2|!a&&a+b+c!=2) /* 判斷是否滿足題意 */ &&(b&&a+b+c=1|!b&&a+b+c!=1)&&(c&&a+b+c=1|!c&&a+b+c!=1)printf("A is a %s.n",a?"honest":"lier"); /*輸出判斷結(jié)果*/printf("B is a %s.n",b?"honest&
29、quot;:"lier");printf("C is a %s.n",c?"honest":"lier");* 運行結(jié)果A is a lier ( 說謊族 )B is a lier ( 說謊族 )C is a lier ( 說謊族 );.10 角谷猜想日本一位中學生發(fā)現(xiàn)一個奇妙的“定理”,請角谷教授證明,而教授無能為力,于是產(chǎn)生角谷猜想。猜想的內(nèi)容是:任給一個自然數(shù),若為偶數(shù)除以2,若為奇數(shù)則乘3 加 1,得到一個新的自然數(shù)后按照上面的法則繼續(xù)演算,若干次后得到的結(jié)果必然為1。請編程驗證。* 問題分析與算法設計本題是一個沿未獲得一般證明的猜想,但屢試不爽,可以用程序驗證。題目中給出的處理過程很清楚,算法不需特殊設計,可按照題目的敘述直接進行證。* 程序說明與注釋#include<stdio.h>int main()int n,count=0;printf("Please enter number:");scanf("%d",&n); /* 輸入任一整數(shù)*/doif(n%2)n=n*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 80369-6:2025 EN Small bore connectors for liquids and gases in healthcare applications - Part 6: Connectors for neural applications
- 【正版授權(quán)】 IEC 60654-1:1993 EN-D Industrial-process measurement and control equipment - Operating conditions - Part 1: Climatic conditions
- 【正版授權(quán)】 IEC TS 63224:2025 EN Management of network assets in power systems - Management aspects
- 城市交通智能化升級項目協(xié)議
- 旅游服務行業(yè)從業(yè)及表現(xiàn)證明(5篇)
- 機械工程原理及設備維護案例分析
- 農(nóng)業(yè)領(lǐng)域產(chǎn)品種類表
- 藝德家政考試試題及答案
- 六一助殘活動方案
- 六一商場品牌活動方案
- 2024年河北特崗教師計劃招聘真題
- 2025年全國I卷作文講評
- 2024年中考二模 模擬卷 數(shù)學(江西卷)(參考答案及評分標準)
- 綜合辦公室考試題及答案
- 2025年中考押題預測卷:生物(福建卷01)(考試版)
- 勞務費合同協(xié)議書
- 人工智能提示詞工程師試題含答案
- 2025-2030中國風能風電行業(yè)市場深度調(diào)研及競爭格局與投資前景研究報告
- 北京開放大學2025年《裝配式技術(shù)與應用》形成性考核1答案
- 2025年恒豐銀行煙臺分行招聘筆試參考題庫含答案解析
- 【MOOC】工程電磁場與波-浙江大學 中國大學慕課MOOC答案
評論
0/150
提交評論