省二综合复习.docx
- 文档编号:988752
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:6
- 大小:16.66KB
省二综合复习.docx
《省二综合复习.docx》由会员分享,可在线阅读,更多相关《省二综合复习.docx(6页珍藏版)》请在冰点文库上搜索。
省二综合复习
1程序功能:
计算y=1+2/3+3/5+4/7+…+n/(2*n-1)(n=50),要求:
按四舍五入的方式精确到小数点后第二位。
PrivateSubCommand1_Click()
DimsAsSingle
DimnAsInteger
s=0
Forn=1To50
s=s+n/(2*n–1)
Nextn
Printround(s,2)
EndSub
2编程要求:
统计1000-9999之间的所有满足以下条件的四位数的个数。
该数是一个完全平方数,且其第1位与第3位数字之和为10,第2位与第4位数字之积为12。
说明:
一个整数是另一个整数的平方,就称称该数是完全平方数,例如:
25=5^2,所以25是完全平方数。
换言之,如果一个数的平方根是整数,那么这个数就是完全平方数。
表达完全平方数的条件写法:
sqr(i)=int(sqr(i))
类似题型:
编写程序,统计1000-9999之间的所有满足以下条件的四位数的个数。
该四位数是一个完全平方数,且其第1、3位数字之和为6,第2、4位数字之积为24。
3编程:
一个数如果刚好与它所有的因子之和相等,则称该数为一个"完数",如:
6=1+2+3,则6就是一个完数。
求出200到500之间所有的完数之和。
解决该类问题的关键是求一个数的所有因子,假设有一数为n,循环用从1到n-1的数去除n,如果能将n整除,则该数为n的因子。
核心算法如下:
s=0
fori=1ton-1
ifnmodi=0thens=s+i'求因子之和
next
类似的有
已知24有8个正整数因子(即:
1,2,3,4,6,8,12,24),而24正好能被其因子数8整除,求正整数[10,100]之间有多少个正整数能被其因子的个数整除。
12
4(穷举法)(x,y,z)满足方程:
x^2+y^2+z^2=55^2(注:
要求x>y>z),则(x,y,z)称为方程的一个解。
试求方程的整数解(包括负整数解)的个数。
说明:
排列组合的问题,解答这种问题需根据题意先确实变量的取值范围,然后使用穷举法求解,一般使用For…Next的循环嵌套结构。
求解本题:
先设三个变量x,y,z。
取值范围为:
x(-55到55),y(-55到55),z(-55到55)
满足条件为:
x^2+y^2+z^2=55^2,x>y>z(注意在VB中必须写成x>yandy>z
类似的有
求方程9X-19Y=1,在|X|≤100,|Y|≤50内共有多少组整数解?
5已知A,B为正整数,A
理解:
首先当A和B最相近的时候A+B则取得最小值,也就是Sqr(716699)=846.58076992098
由于A
条件为:
如果716699是B的公倍数,则输出A。
并且第一个输出的则为所要的A值。
ForB=847To716699
A=716699/B
If716699ModB=0ThenPrintA:
ExitFor
Next
6(递推法)1、某一正整数,进行递减,每次将该数减半后再减一,当对该数进行第10次减半时发现该数只剩下1不能再减了,求该数。
1534
由于不知道第一天的,只知道第10天的,采用倒推
即:
第10天n1=1(第1次循环初值)
第9天n2=(n1+1)*2(第2次循环初值)
第8天n3=(n2+1)*2(第3次循环初值)
。
。
。
。
。
。
。
。
。
。
求第1天,则循环9次
Fori=1to9
N=2*(n+1)
Next
7程序功能:
求[3,500]内所有素数之和。
程序中有一行错误,改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()
sum=0
Forx=3To500
flag=True
Fori=2Tox-1
IfxModi=0Then
flag=False
ExitFor
EndIf
NextI’下行有错误
IfnotflagThen
sum=sum+x
EndIf
Nextx
Printsum
EndSub
8已知一个数列的前三项为0,0,1,以后各项都是其相邻的前三项之和,求该数列前30项之和。
18947744
参考程序一:
(用数组)
PrivateSubCommand1_Click()
Dimf(30)
f
(1)=0
f
(2)=0
f(3)=1
s=1’最先要把前三项的和先加起来
Fori=4To30
f(i)=f(i-1)+f(i-2)+f(i-3)
s=s+f(i)
Next
Prints
EndSub
参考程序2:
说明:
裴波那契数问题其实是一种递推问题,由一个数列的前几项求出该数列的后一项。
PrivateSubCommand1_Click()
F1=0
F2=0
F3=1
s=1'初值设为1
Fori=4To30
F4=F1+F2+F3'数列的表示
F1=F2'第二项变成下一次循环的第一项
F2=F3'第三项变成下一次循环的第二项
F3=F4'第四项变成下一次循环的第三项
s=s+F4'累加和
Nexti
Prints
EndSub
9编程:
求10到200间的所有素数的个数以及和
书上例4-22P79
说明:
素数就是数学当中的质数,判断一个数是不是素数,就是用除了1和它自己以外所有的数去除该数,如果都不能将其整除则该数为素数。
求n是不是素数,就是循环用2到n-1(本身减1)的整数去除n,如果这之间有一个数能将n整除,那么可以确定该数不是素数,用exitfor强制退出循环,如果在整个过程中都没有数能将其整除,循环全部走完,该数是个素数,并且i=n。
核心算法如下。
fori=2ton
ifnmodi=0thenexitfor
nexti
ifi=nthenprint"该数是一个素数!
"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合 复习