版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、循環(huán)結(jié)構(gòu)程序1. 利用隨機(jī)函數(shù) RAN刖函數(shù)floor,產(chǎn)生30個(gè)1到20之間的隨機(jī)整數(shù),使用WHILE語(yǔ)句顯示這30個(gè)隨機(jī)數(shù)。declare i int,x intselect i=1while i<=30beg inset x=FLOOR(RAND()*(20-1+1)+1)set i=i+1print xend2. 設(shè)紙的厚度為 0.5毫米,將紙對(duì)折,再對(duì)折,求至少對(duì)折多少次,紙X的厚度能達(dá)到珠穆朗瑪峰的高度 8848米。方法一:Declare h decimal(10,1),n intselect h=0.5 ,n=0while h<8844000-運(yùn)算局部beg inse
2、t h=h*2set n=n+1endselect '對(duì)折',n,'次后可以超過(guò)珠峰的高度-輸出局部方法二:Declare h decimal(10,1),n intselect h=0.5 ,n=0while h<8844000-運(yùn)算局部beg inset n=n+1set h=0.5*power(2 ,n)end-select '對(duì)折',n,'次后可以超過(guò)珠峰的高度print '對(duì)折'+ltrim(str(n)+'次后可以超過(guò)珠峰的高度'3. 求自然數(shù)1100之間奇數(shù)之和 declare i int,s
3、bigintselect i=1,s=0while i<=100beg inset s=s+iset i=i+2endselect 's=',s4. 編寫程序,輸出由1、2、3、4、5、6這六個(gè)數(shù)字組成的所有可能的兩位數(shù),并統(tǒng)計(jì)它們的個(gè)數(shù)。declare x in t,i in t,j int,n intset x=123456set i=1set n=0while i<=6begi nset j=1while j<=6begi nprint str(i,1)+str(j,1)set n=n+1set j=j+1endset i=i+1endprint
4、9;n='+str( n,3)5. 編寫程序,輸入一個(gè)數(shù),判定該數(shù)是否為素?cái)?shù),如果是素?cái)?shù),如此輸出“該數(shù)是素?cái)?shù)" 的信息,否如此輸出“該數(shù)不是素?cái)?shù)'的信息。方法一:用循環(huán)變量等于要判斷的數(shù)減一的方法來(lái)確定。declare x in t,i intset i=2set x=6while i<=x-1beg inif x%i=0breakelseset i=i+1endif i=xprint str(x)+'是素?cái)?shù)elseprint str(x)+'不是素?cái)?shù)方法二:使用做記號(hào)的方法。declare x in t,i in t,jh bitset jh
5、=0 -使用變量做記號(hào)set i=2set x=5while i<=x-1beg inif x%i=0beg inset jh=1breakendelseset i=i+1endif jh=0print str(x)+ '是素?cái)?shù)elseprint str(x)+'不是素?cái)?shù)declare i in t,s bigi ntselect i=1,s=0while i<=30beg inif i%7=0set s=s+iset i=i+1endselect 's=',s7. 在國(guó)際象棋棋盤的 64個(gè)格上依次放入小麥1粒、2粒、4粒、8粒,求按此規(guī)律放滿64個(gè)
6、格需要多少粒小麥。分析:后一個(gè)數(shù)是前一個(gè)數(shù)的2倍,得出通式為:X=2*Xdeclare x float,S float,n bigintselect x=1,s=0,n=1while *=64beg inset s=s+xset x=2*xset n=n+1print xendprin t 's='+cast(s as varchar(40)8. 求自然數(shù)1100之間偶數(shù)之和 declare i int,s bigintselect i=0,s=0while i<=100beg inset s=s+iset i=i+2endselect 's=',s9.
7、計(jì)算 s=1 + 1/2+1/4+1/7+1/11+1/16+1/22+1/29+ 當(dāng)?shù)?i 項(xiàng)的值小于 0.0004 時(shí)完畢。提示:找出規(guī)律,第i項(xiàng)的分母是前一項(xiàng)的分母加i減1。declare i int,s float,fm float-i是項(xiàng)數(shù),fm是分母,s是所求的和值set i=1set s=0set fm=1beg inset s=s+1/fm-第i項(xiàng)的分母是前一項(xiàng)的分母加i減1set i=i+1set fm=fm+i-1 endprin t 's='+str(s,7,4) prin t 'i='+str(i,7,4) prin t 'fm=
8、'+str(fm,7,4)注意:分母fm必須定義為float類型,不能定義為int,因兩個(gè)整數(shù)相除商 為整數(shù)而得不到小數(shù)。10. 編寫程序,在100999三位整數(shù)X圍內(nèi),找出這樣的數(shù)(水仙花數(shù)):該數(shù)等于其各位數(shù) 字的立方和。如:37仁3人3+7人3+1人3,即371就是水仙花數(shù)。注意:3A3表示3的3次方,7A3表示7的3次方,1A3表示1的3次方。分析:首先要會(huì)將數(shù)進(jìn)展分解,分解的方法我 們講過(guò)至少3種。第一種,一般的分解方法:Declare x in t,a in t ,b in t,c in t,s int 百位=(Floor(x/100)%10set x=456Set a=f
9、loor(x/100)Set b=floor(x-a*100)/10)- set c=x-a*100-b*10-使用以上分解數(shù)的方法所編代碼為:取出百位上的數(shù)字取出十位上的數(shù)字取出個(gè)位上的數(shù)字Declare x in t,a in t ,b in t,c intprin t '100-999之間的所有水仙花是:set x=100while x<=999beg inSet a=floor(x/100)-Set b=floor(x-a*100)/10)-set c=x-a*100-b*10-取出百位上的數(shù)字 取出十位上的數(shù)字 取出個(gè)位上的數(shù)字if power(a,3)+power(b
10、,3)+power(c,3)=x print xset x=x+1end第二種,找通式方法:假設(shè)x=1234個(gè)位=(Floor(x/1)%10十位=(Floor(x/10)%10千位=(Floor(x/1000)%10通式:Xi=FLOOR(X/l0i-1)%10 i 從個(gè)位數(shù)起使用以上分解數(shù)的方法所編代碼為:Declare x in t,a in t ,b in t,c intprin t '100-999之間的所有水仙花是:'set x=100while x<=999取出百位上的數(shù)字取出十位上的數(shù)字取出個(gè)位上的數(shù)字beg inSet a=(Floor(x/100)%1
11、0-Set b=(Floor(x/10)%10-set c=(Floor(x/1)%10-if power(a,3)+power(b,3)+power(c,3)=x print xset x=x+1end第三種,取子串的方法Declare x in t,a in t ,b in t,c intprin t '100-999之間的所有水仙花是:'set x=100while x<=999beg inSet a=str(substri ng(cast(x as char(3),1,1),1)-取出百位上的數(shù)字Set b=str(substri ng(cast(x as cha
12、r(3),2,1),1)-取出十位上的數(shù)字set c=str(substri ng(cast(x as char(3),3,1),1)-取出個(gè)位上的數(shù)字if power(a,3)+power(b,3)+power(c,3)=xprint x set x=x+1end提示:代碼中的cast(x as char(3) 是將數(shù)值型的X轉(zhuǎn)換為字符型數(shù)據(jù),之后 用substring函數(shù)取子串,然后再將字符型數(shù)據(jù)用 str函數(shù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù)。11.計(jì)算1! +2 ! + +20!方法一:使用雙循環(huán)即循環(huán)嵌套來(lái)實(shí)現(xiàn)。 declare s1 float,S2 float,i int,j intset i=1
13、set s1=0while i<=4beg inset j=1set s2=1while j<=ibegi nset s2=s2*jset j=j+1endprint str(j-1,2)+'!='+ltrim(str(s2)set s1=s1+s2set i=i+1endprint '1!+2!+3!+.的和 s仁'+cast(s1 as varchar(40)方法二:使用單循環(huán)也可實(shí)現(xiàn)。declare s1 float,S2 float,i int,j intset i=1set s1=0-用來(lái)存放和值set s2=1-用來(lái)存放階乘值while
14、i<=4beg inset s2=s2*iset s1=s1+s2set i=i+1endprint '1!+2!+3!+.的和 s仁'+cast(s1 as varchar(40)類似的題目還有:s=1+(1+2)+(1+2+3)+(1+2+3+4)+.+(1+2+#+n),模仿上例自己編程實(shí)現(xiàn)。12. 利用循環(huán)結(jié)構(gòu)求 s 的值,S=1*2*3+2*3*4+ +i*(i+1)*(i+2)+15*16*17 的值。declare s1 float,S2 float,i int,j intset i=1set s1=0-用來(lái)存放和值set s2=1-用來(lái)存放乘積while
15、i<=3beg inset s2=i*(i+1)*(i+2)set s1=s1+s2set i=i+1endprint'1*2*3+2*3*4+i*(i+1)*(i+2)+15*16*17 的和 s仁'+cast(s1 asvarchar(40)13. 有一個(gè)分?jǐn)?shù)序列,求出這個(gè)序列的前 20項(xiàng)之和。2/1, 3/2, 5/3, 8/5, 13/8, 21/13,提示:后一項(xiàng)為哪一項(xiàng)前一項(xiàng)的倒數(shù)加1。declare s float,x float,i intset i=1set s=0- 用來(lái)存放和值set x=2/1while i<=3beg inset s=s+x
16、set i=i+1set x=1/x+1-后一項(xiàng)為哪一項(xiàng)前一項(xiàng)的倒數(shù)加1endprint '2/1,3/2, 5/3, 8/5, 13/8, 21/13的前 20 項(xiàng)的和 s='+cast(s asvarchar(40)14. 計(jì)算1A3+2A3+3A3+ - +100A3.注意:1A3表示1的3次方,2A3表示2的3次方, 100A3 表示 100 的 3 次方。declare s bigint,i intset i=1set s=0-用來(lái)存放和值while i<=100beg inset s=s+power(i,3)set i=i+1endprint '1A3
17、+2A3+3A3+100八3 的和 s='+cast(s as varchar(40)15. 編寫程序,用 Print語(yǔ)句顯示150之間的奇數(shù)declare i intprint '顯示150之間的奇數(shù)'set i=1while i<=50beg inprint iset i=i+2end16. 求s=a+aa+aaa+aaaaaa(n個(gè)a),其中a和n的值由用戶使用 Set或Select語(yǔ)句自己輸入。例如,當(dāng)a=3,n=4 時(shí),S=3+33+333+3333。方法一:用重復(fù)產(chǎn)生字符函數(shù)REPLICATE編程:declare i in t,a varchar(10
18、),s bigi ntprint ' 求 a+aa+aaa+ +aaaaaa(n 個(gè) a)的和set s=0set i=1set a='5'while i<=4beg inset a='5'set a=replicate(a,i)print aset s=s+cast(a as int)set i=i+1endprint' 求 a+aa+aaa+aaa aaa( n 個(gè) a)的和 s='+ltrim(str(s,15)方法二:按位權(quán)展開法如X=123按位權(quán)展開法得到結(jié)果為:X=1*1O2+2*1O1+3*1O0,可得通式為X=X+Floor(a/ 10A (i-1) )%10)* 10A (i-1)說(shuō)明:公式中的Floor(a/10A (i-1) )%10),是把每一個(gè)數(shù)別
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《現(xiàn)代交換技術(shù)》全套教學(xué)課件
- 2024年溫嶺東方醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年淮南市第六人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 學(xué)寫文學(xué)短評(píng)-以《永遇樂·京口北固亭懷古》為例 說(shuō)課稿 2024-2025學(xué)年統(tǒng)編版高中語(yǔ)文必修上冊(cè)
- 2024年滄源佤族自治縣人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 企業(yè)新生培訓(xùn)方案
- 《新能源汽車研究》課件
- 外科護(hù)理學(xué)知識(shí)點(diǎn)總結(jié)
- 2024年梁平縣人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 夏季養(yǎng)生及預(yù)防
- 應(yīng)急預(yù)案監(jiān)理實(shí)施細(xì)則
- 基于英語(yǔ)學(xué)習(xí)活動(dòng)觀的高中英語(yǔ)課堂教學(xué)實(shí)踐
- 焊工職業(yè)技能鑒定考試題庫(kù)及答案
- 2024年4月自考00159高級(jí)財(cái)務(wù)會(huì)計(jì)試題
- MOOC 工程材料學(xué)-華中科技大學(xué) 中國(guó)大學(xué)慕課答案
- 《中國(guó)高鐵作業(yè)設(shè)計(jì)方案-2023-2024學(xué)年科學(xué)冀人版》
- 招標(biāo)代理服務(wù)服務(wù)方案
- 初一數(shù)學(xué)上冊(cè)有理數(shù)加減混合運(yùn)算練習(xí)題及答案(共100題)
- 論蘇軾詩(shī)詞中的曠達(dá)風(fēng)格
- 部編人教版八年級(jí)下冊(cè)英語(yǔ)同步訓(xùn)練全套
- 運(yùn)輸成本核算
評(píng)論
0/150
提交評(píng)論