算法实例.docx

上传人:b****8 文档编号:28086044 上传时间:2023-07-08 格式:DOCX 页数:15 大小:132.12KB
下载 相关 举报
算法实例.docx_第1页
第1页 / 共15页
算法实例.docx_第2页
第2页 / 共15页
算法实例.docx_第3页
第3页 / 共15页
算法实例.docx_第4页
第4页 / 共15页
算法实例.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

算法实例.docx

《算法实例.docx》由会员分享,可在线阅读,更多相关《算法实例.docx(15页珍藏版)》请在冰豆网上搜索。

算法实例.docx

算法实例

解析法:

数列问题

*用循环结构实现y=xn(n>=0)(x为整数),写出流程图。

N=inputbox(“”)

X=inputbox(“”)

Y=1

Ifn>=0then

I=1

Dowhilei<=n

Y=y*x

I=i+1

Loop

Printy

else

print“error”

endif

*s=1+3+5+7+……+n,

(1)求前20项的和

(2)求当累加到第几项时,s的值刚好超过100?

(3)求第30项的值

(4)求累加到第几项时,s的值刚好不超过300?

(1)

I=1

S=0

Dowhilei<=20

S=s+(2*i-1)

I=i+1

Loop

Prints

(2)

I=1

S=0

Dowhiles<=100

S=s+(2*i-1)

I=i+1

Loop

Printi-1

(3)

I=1

S=0

Dowhilei<=30

T=2*i-1

S=s+t

I=i+1

Loop

Printt

(4)

I=0

S=0

do

S=s+(2*i-1)

I=i+1

Loopuntils>=300

Printi-1

*求1!

+2!

+3!

+4!

+…+20!

方法1:

S=1

Fori=2to20

T=1

forj=2toi

t=t*j

nextj

s=s+t

nexti

prints

方法2:

N=inputbox(“”)

S=0

T=1

A=1

Dowhilea<=n

T=t*a

S=s+t

A=a+1

Loop

Prints

*求斐波纳奇数列的第n项

N=inputbox(“”)

Ifn<3then

Print1

Else

A=1:

b=1:

c=2:

k=3

Ifn=3then

Print2

else

Dowhilek<=n

A=b

B=c

C=a+b

K=k+1

Loop

Printc

endif

endif

*计算圆周率

N=inputbox(“”)

I=1:

s=1:

x=2:

y=1

Dowhilei<=n

S=s*(x/y)

I=i+1

IfImod2<>0then

X=x+2

Else

Y=y+2

Endif

Loop

Prints*2

*求a,b(a>b)两数的最大公约数和最小公倍数

 

A=inputbox(“”)

B=inputbox(“”)

X=a

Y=b

Do

R=amodb

A=b

B=r

Loopuntilb=0

Print“最大公约数是”;a

S=(x/a)*(y/a)*a

Print“最小公倍数是”;s

枚举算法

*《孙子算经》鸡兔同笼问题:

有35个头,94只脚,问鸡兔各有几只?

X+y=35

2x+4y=94

X=1

Dowhilex<=35

If2*x+(35-x)*4=94then

Printx,35-x

Endif

X=x+1

Loop

*涂抹单据1:

一张单据上有一个5位数的编号,万位数是1,十位数是4,个位数是7,千位数和百位数已经模糊不清,只知道该5位数是57或67的倍数,找出所有满足这些条件的5位数并输出。

1**47

Forj=0To99

n=10047+j*1000

IfnMod57=0OrnMod67=0Then

Printn

EndIf

Nextj

*涂抹单据2:

一张单据上有一个5位数的编号,万位数是1,百位数是4,个位数是7,千位数和十位数已经模糊不清,只知道该5位数是57或67的倍数,找出所有满足这些条件的5位数并输出。

1*4*7(双重循环)

Fori=0To9

Forj=0to9

n=10407+i*1000+j*10

IfnMod57=0OrnMod67=0Then

Printn

EndIf

Nextj

Nexti

*现要为班级同学购买奖品,有一张面值100元的文具购物券,需购买笔记本(10元/本)和文具盒(15元/套)。

该购物券必须一次性全部用完(不找零不贴钱)。

请列出所有可能的购买方案。

(可以全都购买笔记本或文具盒)

forx=1to10

y=int(100-10*x)/15

printx,y

nextx

*百鸡百钱问题:

已知公鸡每只3元,母鸡每只5元,每3只小鸡1元。

用100元钱买100只鸡,问每种鸡应各买多少?

DimaAsInteger,bAsInteger,cAsInteger

a=0

b=0

c=0

Fora=0to33

Forb=0to20

Forc=0to100

ifa+b+c=100anda*3+b*5+1/3*c=100then

Printa;b;c

endif

Nextc

Nextb

Nexta

*求1000以内的素数

Fori=2To1000

f=0

j=2

Forj=2Toi-1

IfiModj=0Then

f=1

EndIf

j=j+1

Nextj

Iff=0Then

Printi

EndIf

Nexti

*判断一个输入的数是否为素数(此题不是枚举)

a=inputbox(“”)

ifa<=1then

print“no”

else

f=0

fori=2toa-1

ifamodi=0then

f=1

endif

nexti

iff=0then

print“yes”

else

print“no”

endif

endif

*包装600个变形金刚,要求:

1)包装的规格分别是:

小盒每盒12个,大盒每盒15个;2)每种规格的盒数都不能为0

Forx=1to50

Fory=1to50

If12*x+15*y=600then

I=x

J=y

PrintI,j

endif

Nexty

Nextx

排序算法

*输入10个数,将这10个数从小到大排序(冒泡排序)

Dimd(1to10)assingle,iAsInteger,jAsInteger,kAsInteger

i=1

DoWhilei<=10

d(i)=InputBox("")

i=i+1

Loop

i=1

n=10

DoWhilei

j=10

DoWhilej>i

Ifd(j)

k=d(j):

d(j)=d(j-1):

d(j-1)=k

EndIf

j=j-1

Loop

i=i+1

Loop

i=1

DoWhilei<=10

Printd(i)

i=i+1

Loop

查找算法

*顺序查找10个数中key等于48的位置,如找到,输出数组下标

18,25,12,34,13,14,,48,49,56,67

Dimd(1To10)AsSingle,iAsInteger,jAsInteger,keyAsSingle,mAsInteger,rAsInteger

i=1

DoWhilei<=10

d(i)=InputBox("")

i=i+1

Loop

i=1

r=0

key=inputbox(“请输入key”)

DoWhilei<=10andr=0

Ifkey=d(i)then

r=i

endif

i=i+1

Loop

ifr<>0then

printr,d(r)

else

print”didnotfind”

endif

*对分查找10个数中key等于48的位置,如找到,输出数组下标

12,13,14,18,25,34,48,49,56,67

Dimd(1To10)AsSingle,iAsInteger,jAsInteger,keyAsSingle,mAsInteger,rAsInteger

i=1

DoWhilei<=10

d(i)=InputBox("")

i=i+1

Loop

i=1

j=10

r=0

key=inputbox(“请输入key”)

DoWhilei<=jandr=0

m=int((i+j)/2)

Ifkey=d(m)then

r=m

endif

Ifkey

j=m-1

else

i=m+1

endif

Loop

ifr<>0then

printr,d(r)

else

print”didnotfind”

endif

 

递推算法(考试不需要)

*一个球从100米高度自由下落,落地后反弹回到原高度的一半处,再落下,又反弹回到第2次下落时高度的一半,以后每次都反弹到上次下落的高度一半处。

求该球在第10次落地时,共经过了多少米?

第10次反弹到多高?

S=100

X=100

I=1

Dowhilei<10

X=x/2

S=s+x

I=i+1

Loop

Prints

Printx/2

*将一张足够大的纸,第一次对折,第二次再对折,第三次再对折,······,要想知道折叠27次的厚度(假设10层纸的厚度为1毫米)

*一小球从10米高空落地,以后每次弹起的高度都要比前一次减少20%,经过多少次后,小球弹起的高度小于0.01米。

I=0

X=10

Dowhilex>=0.01

X=x*(1-0.2)

I=i+1

Loop

Printi-1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1