还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
循环结构程序利用随机函数刖函数产生个至之间的随机整数,使用语句
1.RAN floor,301IJ20WHILE显示这30个随机数declare i int,x int占select1while i=30beg inset x=FLOORRAND*20-1+1+1set i=i+1print xend设纸的厚度为毫米,将纸对折,再对折…,求至少对折多少次,纸的厚度能达到
2.
0.5x珠穆朗玛峰的高度米方法一8848Declare hdecimal10,1,n intselecth=
0.5,n=0运算局部while h8844000-beg inset h=h*2set n=n+1end,对折5;次后可以超过珠峰的高度-输出局部select方法二Declare hdecimal0,1,n intselecth=
0.5,n=0运算局部while h8844000-beg inset n=n+1seth=
0.5*power2,nend对折,二次后可以超过珠峰的高度’-select n对折次后可以超过珠峰的高度’print+ltrimstrn+求自然数之间奇数之和
3.1~100declare i int,s bigintselect i=1,s=0while i=100beg inset s=s+iset i=i+2endselect s=\s编写程序,输出由、、、、、这六个数字组成的所有可能的两位数,并统计它们
4.123456的个数print xset s=s+xset i=i+1end求的和print a+aa+aaa+...+aaa...aaa na s=+ltrimstrs,15declare xin t,i in t,j int,n intset x=123456set i=1set n=O while i=6begi nset j=1while j=6begi nprint stri,1+strj,1setn=n+1set j=j+1,,end set i=i+1end printn=+str n,3编写程序,输入一个数,判定该数是否为素
5.数,如果是素数,如此输出“该数是素数的信息,否如此输出“该数不是素数的信息方法-用循环变量等于要判断的数减一的方法来确定declare xin t,i intset i=2set x=6while i=x-1beg inif x%i=0break是素数’else set i=i+1end ifi=x print strx+不是素数’else print strx+使用做记号的方法使用变量做记号方法二declare xin t,iin tjh bitset jh=O-set i=2set x=5while i=x-1beg inif x%i=0beg insetjh=1breakendelse占set i+1endifjh=O是素数’print strx+else不是素数’printstrx+declare iin t,s bigintselecti=1,s=0while i=30beg inifi%7=0set s=s+i占set i+1end selects=,s.在国际象棋棋盘的个格上挨次放入小麦粒、粒、粒、粒…,求按此规律放满7641248个格需要多少粒小麦分析64后一个数是前一个数的倍,得出通式为2X=2*Xdeclare x float,S float,n bigintselectx=1,s=0,n=1while*=64beg inset s=s+xset x=2*xset n=n+1print xendfprin ts=+casts as varchar40+匕的砧sc-L,/田柏一力4declare iint,s biginto求自然数间偶数N和丫
8.1~100Nselect i=0,s=0while i=100beg inset s=s+iset i=i+2endselect s=,s
9.计算s=1+1/2+1/4+1/7+1/11+1/16+1/22+1/29+・••当第i项的值小于
0.0004时完毕提示:找出规律,第i项的分母是前一项的分母加i减1declare iint,s float,fm float是项数,是分母,是所求的和值--i fmsset i=1set s=0set fm=1beg inset s=s+1/fmset i=i+1-第项的分母是前一项的分母加减set fm=fm+i-1end ii1prin ts=+strs,7,4prin,,ti=+stri,7,4prin tfm=+strfm7,43注意分母〔〕必须定义为类型,不能定义为因两个整数相除商为整数而fm noatint,得不到小数编写程序,在
10.100~999三位整数围内,找出这样的数水仙花数该数等于其各位数字的立方和如仁人人X3733+73+1人即就是水仙花数注意表示的次方,3,3713A333表示的次方,表示的次方分析首先要会将数发展分解,分解的方法我们讲过至少7A3731A313种3第一种,普通的分解方法百位Declare xin t,a in t,b in t,c int,s int=Floorx/100%10set x=456取出百位上的数字Set a=floorx/100取出十位上的数字Set b=floorx-a*100/10-取出个位上的数字set c=x-a*100-b*10-使用以上分解数的方法所编代码为Declare xint,a int,b int,c int之间的所有水仙花是print*100-999set x=100while x=999beg in取出百位上的数字Set a=floorx/100-取出十位上的数字取Set b=floorx-a*100/10-set出个位上的数字c=x-a*100-b*10-if powera,3+powerb,3+powerc,3=x printxset x=x+1end第二种,找通式方法假设x=1234个位=Floorx/1%10十位=Floorx/10%10千位=Floorx/1000%10通式〔〕从个位数起X i=FLOORX/IOi-i%10i}使用以上分解数的方法所编代码为Declare xint,a int,b int,c intf之间的所有水仙花是’print100-999set x=100while x=999beg in取出百位上的数字Set a=Floorx/100%10-取出十位上的数字Set b=Floorx/10%10-取出个位上的数字set c=Floorx/1%10-if powera,3+powerb3+powerc3=x printx55set x=x+1end第三种,取子串的方法Declare xint,a int,b int,c int之间的所有水仙花是’print*100-999set x=100while x=999beg inSeta=strsubstri ngcastx aschar3,1,1,1一取出百位上的数字Set b=strsubstri ngcastx aschar3,21,1—取出十位上的数字set c=strsubstri ngcastx aschar3,3,1,1■取出个位上的•数字if powera,3+powerb3+powerc,3=x printx set x=x+15end提示代码中的是将数值型的转换为字符型数据,之后用castx aschar3X substring函数取子串,然后再将字符型数据用函数转换为数值型数据str
11.计算1!+2!+・・・+20!方法一使用双循环即循环嵌套来实现declare s1float,S2float,iintj intsetset s1=0while i=4beg insetj=1set s2=1while j=ibegi nset s2=s2*jset j=j+1endprint strj-1,2+!=+ltriiTistrs2set s1=s1+s2set i=i+1end・的和仁方法二使用单循环也可实现print”!+2!+3!+..s+casts1as varchar40declare s1float,S2float,!intj intset i=1用来存放和值sets1=0-用来存放阶乘值sets2=1-while i=4beg insets2=s2*iset s1=s1+s2set i=i+1end的和仁print”!+2!+3!+...s+casts1asvarchar40类似的题目还有摹仿上例自己编程实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*17declare s1float,S2float,!intj intset i=1用来存放和值sets1=0-用来存放乘积sets2=1-while i=3beg insets2=i*i+1*i+2sets1=s1+s2set i=i+1end的和仁priori*2*3+2*3*4+-i*ii*j2+…+15*16*17s+casts1as+++varchar40有一个分数序列,求出这个序列的前项之和
13.202/1,3/2,5/3,8/5,13/8,21/13,-提示后一项为哪一项前一项的倒数加1declare sfloat,xfloat,!intset i=1-用来存放和值sets=0set x=2/1while i=3beg insets=s+x set i=i+1setx=1/x+1--后一项为哪一项前一项的倒数加1end的前项的和print2/1,3/2,5/3,8/5,13/8,21/1320s=+casts asvarchar
40.计算.注意表示的次方,表示的次方,…,表示141A3+2A3+3A3+-+100A31A3132A323100A3的次方1003declare s bigintj intset i=1用来存放和值sets=0-while i=100beg insets=s+poweri,3set i=i+1endf・・・八的和fprint1A3+2A3+3A3++1003s=+casts asvarchar
4015.编写程序,用Print语句显示1~50之间的奇数declare iint1显示之间的奇数’print1~50seti=1while i=50beg inprintiset i=i+2end,求个其中和的值由用户使用或者语句16s=a+aa+aaa+…+aaa…aaan a,a nSet Select自己输入例如,当时,a=3,n=4S=3+33+333+3333o方法一用重复产生字符函数编程REPLICATEdeclare iinta varchar10,sbigint5求个的和,print a+aa+aaa+...+aaa...aaan asets=0set,,set a=5while i=4beg inset a=5set a=replicatea,iprint asets=s+casta asintseti=i+1end求的和print a+aa+aaa+...+aaa...aaa na s=+ltrimstrs,15方法二按位权展开法如按位权展开法得到结果为,可得通式为X=123X=1*102+2*10+3*10X=X+Floora/%10*M10AM10A说明公式中的是把每一个数别离出来的Floora/10AM%10,通式由于该题每一个数位都一样,因此通式可写为二X X+a*10-ideclare iint,x bigint,a int,s bigint求个的和,prints=a+aa+aaa+...+aaa---aaan asets=0seti=1seta=5setx=0whilei=4beg insetx=x+a*power10,i-1。