循環結構程序(問題詳解)_第1頁
循環結構程序(問題詳解)_第2頁
循環結構程序(問題詳解)_第3頁
循環結構程序(問題詳解)_第4頁
循環結構程序(問題詳解)_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實用標準文案循環結構程序1.利用隨機函數 RAND 和函數floor ,產生30個1到20之間的隨機整數,使用 WHILE語句顯示這 30個隨機數。declare@iint,@xintselect@i=1while@i<=30beginset@x=FLOOR(RAND()*(20-1+1)+1)set@i=@i+1print@xend設紙的厚度為0.5毫米,將紙對折,再對折?,求至少對折多少次,紙張的厚度能達到珠穆朗瑪峰的高度8848米。方法一:Declare@hdecimal(10,1),@nintselect@h=0.5,@n=0while@h<8844000 --運算部分beginset@h=@h*2set@n=@n+1end精彩文檔實用標準文案select '對折',@n,'次后可以超過珠峰的高度‘ -輸出部分方法二:Declare@hdecimal(10,1),@nintselect@h=0.5,@n=0while@h<8844000 --運算部分beginset@n=@n+1set@h=0.5*power(2,@n)end--select '對折',@n,'次后可以超過珠峰的高度 'print '對折'+ltrim(str(@n))+' 次后可以超過珠峰的高度 '求自然數1~100之間奇數之和declare@iint,@sbigintselect@i=1,@s=0while@i<=100beginset@s=@s+@iset@i=@i+2endselect'@s=',@s編寫程序,輸出由1、2、3、4、5、6這六個數字組成的所有可能的兩位數,并統計它精彩文檔實用標準文案們的個數。declare@xint,@iint,@jint,@nintset@x=123456set@i=1set@n=0while@i<=6beginset@j=1while@j<=6beginprintstr(@i,1)+str(@j,1)set@n=@n+1set@j=@j+1endset@i=@i+1endprint'@n='+str(@n,3)編寫程序,輸入一個數,判定該數是否為素數,如果是素數,則輸出“該數是素數”的信息,否則輸出“該數不是素數”的信息。方法一:用循環變量等于要判斷的數減一的方法來確定。declare@xint,@iint精彩文檔實用標準文案set@i=2set@x=6while@i<=@x-1beginif@x%@i=0breakelseset@i=@i+1endif@i=@xprintstr(@x)+ ‘是素數'elseprintstr(@x)+ ‘不是素數'方法二:使用做記號的方法。declare@xint,@iint,@jhbitset@jh=0 --使用變量做記號set@i=2set@x=5while@i<=@x-1beginif@x%@i=0begin精彩文檔實用標準文案set@jh=1breakendelseset@i=@i+1endif@jh=0printstr(@x)+ ‘是素數'elseprintstr(@x)+ ‘不是素數'編程計算從1到30之間的所有7的倍數之和declare@iint,@sbigintselect@i=1,@s=0while@i<=30beginif@i%7=0set@s=@s+@iset@i=@i+1endselect'@s=',@s精彩文檔實用標準文案7.在國際象棋棋盤的 64個格上依次放入小麥 1粒、2粒、4粒、8粒?,求按此規律放滿個格需要多少粒小麥。分析:后一個數是前一個數的 2倍,得出通式為: @X=2*@Xdeclare@xfloat,@Sfloat,@nbigintselect@x=1,@s=0,@n=1while@n<=64beginset@s=@s+@xset@x=2*@xset@n=@n+1print@xendprint'@s='+cast(@sasvarchar(40))求自然數1~100之間偶數之和declare@iint,@sbigintselect@i=0,@s=0while@i<=100beginset@s=@s+@iset@i=@i+2精彩文檔實用標準文案endselect'@s=',@s9.計算s=1+1/2+1/4+1/7+1/11+1/16+1/22+1/29+ ?當第i項的值小于 0.0004 時結束。提示:找出規律,第 i項的分母是前一項的分母加 i減1。declare@iint,@sfloat,@fmfloat--@i 是項數,@fm是分母,@s是所求的和值set@i=1set@s=0set@fm=1while1/@fm>0.0004beginset@s=@s+1/@fmset@i=@i+1set@fm=@fm+@i-1 --第i項的分母是前一項的分母加 i減1endprint'@s='+str(@s,7,4)print'@i='+str(@i,7,4) --查看一下第多少項時 1/fm 為0.0004print'@fm='+str(@fm,7,4) -- 查看一下1/fm 為0.0004 時的fm是多少注意:分母(@fm)必須定義為 float 類型,不能定義為 int,因兩個整數相除商為整數而得不到小數。精彩文檔實用標準文案編寫程序,在100~999三位整數范圍內,找出這樣的數(水仙花數):該數等于其各位數字的立方和。如: 371=3^3+7^3+1^3 ,即371就是水仙花數。注意: 3^3 表示3的3次方,7^3 表示7的3次方,1^3 表示1的3次方。分析:首先要會將數進行分解,分解的方法我們講過至少 3種。第一種,一般的分解方法:Declare@xint,@aint,@bint,@cint,@sintset@x=456Set@a=floor(@x/100) --取出百位上的數字Set@b=floor((@x-@a*100)/10) --取出十位上的數字set@c=@x-@a*100-@b*10 --取出個位上的數字使用以上分解數的方法所編代碼為:Declare@xint,@aint,@bint,@cintprint'100-999 之間的所有水仙花是:'set@x=100while@x<=999beginSet@a=floor(@x/100) --取出百位上的數字Set@b=floor((@x-@a*100)/10) --取出十位上的數字set@c=@x-@a*100-@b*10 --取出個位上的數字ifpower(@a,3)+power(@b,3)+power(@c,3)=@xprint@x精彩文檔實用標準文案set@x=@x+1end第二種,找通式方法:假設@x=1234個位=(Floor(@x/1))%10十位=(Floor(@x/10))%10百位=(Floor(@x/100))%10千位=(Floor(@x/1000))%10通式:X(i)=FLOOR(@X/10(i-1))%10i從個位數起。使用以上分解數的方法所編代碼為:Declare@xint,@aint,@bint,@cintprint'100-999之間的所有水仙花是:'set@x=100while@x<=999beginSet@a=(Floor(@x/100))%10--取出百位上的數字Set@b=(Floor(@x/10))%10--取出十位上的數字set@c=(Floor(@x/1))%10--取出個位上的數字ifpower(@a,3)+power(@b,3)+power(@c,3)=@xprint@xset@x=@x+1end精彩文檔實用標準文案第三種,取子串的方法Declare@xint,@aint,@bint,@cintprint'100-999 之間的所有水仙花是:'set@x=100while@x<=999beginSet@a=str(substring( cast(@x aschar(3)),1,1),1) --取出百位上的數字Set@b=str(substring( cast(@x aschar(3)),2,1),1) --取出十位上的數字set@c=str(substring( cast(@xaschar(3)) ,3,1),1) --取出個位上的數字ifpower(@a,3)+power(@b,3)+power(@c,3)=@xprint@xset@x=@x+1end提示:代碼中的 cast(@x aschar(3)) 是將數值型的@X轉換為字符型數據,之后用substring 函數取子串,然后再將字符型數據用 str函數轉換為數值型數據。11.計算1!+2!+?+20!方法一:使用雙循環即循環嵌套來實現。精彩文檔實用標準文案declare@s1float,@S2float,@iint,@jintset@i=1set@s1=0while@i<=4beginset@j=1set@s2=1while@j<=@ibeginset@s2=@s2*@jset@j=@j+1endprintstr(@j-1,2)+'!='+ltrim(str(@s2))set@s1=@s1+@s2set@i=@i+1endprint'1!+2!+3!+... 的和@s1='+cast(@s1asvarchar(40))方法二:使用單循環也可實現。declare@s1float,@S2float,@iint,@jintset@i=1set@s1=0 --用來存放和值set@s2=1 --用來存放階乘值精彩文檔實用標準文案while@i<=4beginset@s2=@s2*@iset@s1=@s1+@s2set@i=@i+1endprint'1!+2!+3!+... 的和@s1='+cast(@s1asvarchar(40))類似的題目還有:s=1+(1+2)+(1+2+3)+(1+2+3+4)+ ?.+(1+2+#+ ?+n),模仿上例自己編程實現。12. 利用循環結構求 s的值,S=1*2*3+2*3*4+ ?+i*(i+1)*(i+2)+ ?+15*16*17 的值。declare@s1float,@S2float,@iint,@jintset@i=1set@s1=0 --用來存放和值set@s2=1 --用來存放乘積while@i<=3beginset@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 的 和精彩文檔實用標準文案@s1='+cast(@s1asvarchar(40))13.有一個分數序列, 求出這個序列的前 20項之和。2/1,3/2,5/3,8/5,13/8,21/13, ?.提示:后一項是前一項的倒數加 1。declare@sfloat,@xfloat,@iintset@i=1set@s=0 --用來存放和值set@x=2/1while@i<=3beginset@s=@s+@xset@i=@i+1set@x=1/@x+1 --后一項是前一項的倒數加 1endprint'2/1,3/2,5/3,8/5,13/8,21/13 的前20項的和@s='+cast(@sasvarchar(40))14. 計算1^3+2^3+3^3+ ?+100^3. 注意:1^3 表示1的3次方,2^3 表示2的3次方,?,100^3 表示100的3次方。declare@sbigint,@iintset@i=1精彩文檔實用標準文案set@s=0 --用來存放和值while@i<=100beginset@s=@s+power(@i,3)set@i=@i+1endprint'1^3+2^3+3^3+ ?+100^3 的和@s='+cast(@sasvarchar(40))編寫程序,用Print語句顯示1~50之間的奇數declare@iintprint' 顯示1~50之間的奇數'set@i=1while@i<=50beginprint@iset@i=@i+2end16.求s=a+aa+aaa+ ?+aaa?aaa(n 個a),其中a和n的值由用戶使用 Set或Select 語句自己輸入。例如,當 a=3,n=4 時,S=3+33+333+3333 。方法一:用重復產生字符函數 REPLICATE編程:declare@iint,@avarchar(10),@sbigint精彩文檔實用標準文案print' 求a+aa+aaa+ ?+aaa?aaa(n個a)的和'set@s=0set

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論