算法实例综合复习卷Word格式文档下载.docx
- 文档编号:16974188
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:19
- 大小:345.48KB
算法实例综合复习卷Word格式文档下载.docx
《算法实例综合复习卷Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《算法实例综合复习卷Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
EndSub
2、在1~1000这些自然数中算出所有被3和5除都余2的数有几个。
Dimx,nAsInteger
Print“1~1000之间被3和5除都余2的数:
"
n=0
IfxMod5=2AndxMod3=2Then
n=n+1
Nexti
Print"
共有"
&
Str(n)&
"
个。
3、若有一个三位数满足:
x=a3+b3+c3(其中a、b、c分别是该三位数的百位、十位和个位数字),则称该三位数为水仙花数。
请编程找出所有的水仙花数。
方法一:
Dimx,a,b,cAsInteger
Forx=100To999
a=x\100
b=(xMod100)\10
c=xMod10
Ifx=a^3+b^3+c^3ThenPrintx
运行结果:
方法二:
Dima,b,c,xAsInteger
Fora=1To9
Forb=0To9
Forc=0To9
x=a*100+b*10+c
Ifx=a^3+b^3+c^3ThenPrintx
Nextc
Nextb
Nexta
4、一张单据上的5位数为1■■47,其中百位数和千位数已经模糊不清了,但直到这个5位数是57或67的倍数,请设计一个算法,输出所有可能的数据,并统计满足要求的数据个数。
5、一张单据上的5位数为1■4■7,其中十位数和千位数已经模糊不清了,但直到这个5位数是57或67的倍数,请设计一个算法,输出所有可能的数据,并统计满足要求的数据个数。
6、包装600个变形金刚,要求是:
包装的规格分别是:
小盒每盒12个,大盒每盒15个。
每种规格的盒数都不能为0。
请设计一个算法,输出所有可能的包装方案。
7、某班举行联欢活动,需要购买本子和笔作为奖品。
本子每本3元,笔每支2元,共有100元,那么本子和笔各买多少支?
(本子至少1本,笔至少1支)流程图略
Dima,b,c,d,nAsInteger
Fora=1To33
Forb=1To49
If3*a+2*b=100Then
Printa,b
种方法"
8、1000以内素数推算
通常我们称自然数n为素数,是指只有1和n本身才能整除它(1不是素数,2是最小的素数),即一个素数除了它本身外,不可能分解为其他自然数的乘积。
设计算法:
¢
2~1000依次判断是否为素数,“是”输出并计数,“不是”继续下一个数的判断。
一一列举,无一遗漏,所以需要用枚举算法。
外层循环:
i的值1~1000
内层循环:
j的值2~(i-1),如果i能被j整除,不是素数,跳出内层循环,继续下一个数据的判断。
否则输出该素数。
如果需要将找到的素数累加,只要在此程序的基础上加上累加器即可。
流程图:
方法一代码:
Dimi,j,nAsInteger
Fori=2To1000
Forj=2Toi-1
IfiModj=0Then
ExitFor
Nextj
Ifj=iThen
Printi,
IfnMod5=0ThenPrint
1000以内的素数一共有"
;
n;
个"
方法二代码:
代码:
DimbAsString
b="
yes"
no"
Ifb="
Then
方法二流程图:
例:
假设数组D有五个元素,请用冒泡排序的算法,将该数组按升序排列。
冒泡排序:
●是一种直接交换的排序技术。
●把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地比较相邻的两个元素中的数据,将较小的数换到上面的一个元素中。
重复这一过程,直到处理完最后两个元素中的数据,称为一遍加工。
●当第一遍加工完成时,最小的数据已经上升到第一个元素的位置。
然后对余下的n-1个元素重复上述处理过程,直至最后进行余下两个数据的比较和交换。
二、排序算法
Fori=1To4
Forj=5Toi+1Step-1
Ifd(j)<
d(j-1)Then
t=d(j)
d(j)=d(j-1)
d(j-1)=t
按从小到大顺序排列的结果为:
Fori=1To5
Print"
d("
Str(i)&
)="
d(i)
三、查找算法
1、顺序查找:
在有五个元素的数组中查找数据key。
顺序查找就是在一组数组中,依次查找所需的数据,找到即停止查找并反馈找到的信息,如果找遍还没有找到则反馈没有找到的信息。
Ifd(i)=keyThen
找到,"
Str(d(i))
ExitFor'
跳出循环语句
Nexti
Ifi>
5ThenPrint"
未找到"
i=1
r=0
DoWhilei<
=5Andr=0
r=i
Else
i=i+1
Loop
Ifr<
>
0Then
找到的数据是:
Str(r)&
)"
Else
没找到"
EndIf
2、对分查找:
在一个有11个数据升序数组中采用对分查找找寻所需的数据key。
对分查找是在一组有序的数中找到所需结果。
j=11
=j
m=Int((i+j)/2)
Ifd(m)=keyThen
查找结果:
找到,d("
Str(m)&
Str(d(m))
ExitDo
Ifd(m)<
keyThen
i=m+1
j=m-1
Ifi>
jThenPrint"
如果数组是降序的,请将判断条件和i和j的变化做相应调整。
y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 实例 综合 复习