源代码及答案Word格式文档下载.docx
《源代码及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《源代码及答案Word格式文档下载.docx(159页珍藏版)》请在冰点文库上搜索。
![源代码及答案Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/1/e7803aff-26fc-40e3-8651-14025c03600f/e7803aff-26fc-40e3-8651-14025c03600f1.gif)
i=i+1
Loop
fun=t
EndFunction
0.365016
程序功能:
已知24有8个正整数因子(即:
1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。
求[100,300]之间能被其因子数目整除的数中最大的数。
DimNAsInteger
DimsAsInteger
DimiAsInteger
ForN=300To100‘step-1
Fori=1ToN
IfNModi=0Then
s=s+1
EndIf
Nexti
IfsModN=0Then‘NMods=0
PrintN
ExitFor
NextN
296
求四位偶数中,各位数字之和是30的倍数的数之和。
程序中有错误,改正错误,使程序能输出正确结果。
Dimx%,a%,b%,c%,d%
Dimnum1&
num1=0
Forx=1000To9999
a=Int(x/1000)
b=Int(x/100)-a*10
c=Int(x/10)-a*100-b*10
d=x-a*1000-b*100-c*10
Ifa+b+c+dMod30=0Then
num1=num1+x
Nextx
Printnum1
288840
修改如下:
Forx=1000To9999Step2
a=Fix(x/1000)
b=Fix((x-a*1000)/100)
c=Fix((x-a*1000-b*100)/10)
If(a+b+c+d)Mod30=0Then
3000为止。
3000‘S>
3000
i=i+1‘I=I+2
3025
根据整型参数m的值,计算公式t=1-1/(2*2)-1/(3*3)-…-1/(m*m)的值(m=123)。
PrintFormat(fun(123),"
PrivateFunctionfun(nAsInteger)AsInteger
0.363163
改为:
PrivateFunctionfun(nAsInteger)AsSingle
求100~200之间的素数个数,程序中有错误。
PrivateSubForm_Click()
Number=0
Forx=101To199Step2
i=2
k=Int(x/2)
DoWhilei<
=k
IfxModi=0ThenExitFor‘ExitDo
i=i+1
Ifi<
kThen‘IfI>
kThen
Number=Number+1
PrintNumber
21
求满足以下条件的(a,b,c)的组数:
(1)1/(a^2)+1/(b^2)=1/(c^2);
(2)a>
b>
c;
(3)a+b+c<
100。
程序中有错误,改正错误,使程序能输出正确的结果。
Dimc%,b%,a%,s$
Forc=1To100
Forb=1To100
Fora=1To100
Ifa+b+c<
100Or1/(a^2)+1/(b^2)=1/(c^2)Thens=s+1
Nexta,b,c
2
100And1/(a^2)+1/(b^2)=1/(c^2)And(a>
b)And(b>
c)Thens=s+1
计算s=2!
+4!
+8!
。
DimkAsInteger,iAsInteger
DimsAsLong,tAsLong
=3
k=1
Whilek<
=2*I‘2^i
t=t*k
k=k+1
Wend
s=s+t
Wend‘loop
40346
根据整型参数m,计算1-123的平方根的倒数之和。
程序的函数fun()中有一行有错误,改正错误,使它能输出正确的结果。
#.######"
PrivateFunctionfun(mAsInteger)Assingle
y=0
Fori=1Tom
t=1/Sqr(i)
y=y+t
Nexti
fun=t‘fun=y
20.76577
求sum=d+dd+ddd+……+ddd..d(d为1-9的数字)。
例如,3+33+333+3333(此时d=3,n=4)从键盘上输入d的值为3,n的值为4。
程序中有错误。
DimdAsInteger,nAsInteger,iAsInteger
DimsumAsLong
sum=0
d=Val(InputBox("
请输入数值d:
"
))
n=Val(InputBox("
请输入数值n:
Fori=1Ton
tn=tn+d‘tn=tn*10+d
sum=sun+tn‘sum=sum+tn
Printsum
3702
(1)1/(a^2)+1/(b^2)=1/(c^2);
50。
Forc=1To50
Forb=1To50
Fora=1To50
50Or1/(a^2)+1/(b^2)=1/(c^2)Thens=s+1
1
50And1/(a^2)+1/(b^2)=1/(c^2)And(a>
c)Thens=s+1
+6!
=3‘I<
=4
=2^I‘k<
=2*i
41066
用公式pi/4=1-1/3+1/5-1/7+…求pi(pi为圆周率)的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。
程序的fun()函数中有一行有错误。
PrintFormat(fun(0.0001),"
#.####"
PrivateFunctionfun(numAsSingle)AsSingle
pi=1:
t=1:
s=1:
n=1
Do
s=-s
n=n+2
t=s*1/n
pi=pi+t
LoopUntilt<
num‘LoopUntilAbs(t)<
num
pi=pi*4
fun=pi
3.1418
求水仙花的个数(所谓水仙花数是指一个三位数,该数的各位数字立方之和等于该数本身。
例如153是一个水仙花数,因为1^3+5^3+3^3=153)程序中有错误。
OptionExplicit
DimnumberAsInteger
DimnAsInteger,iAsInteger,jAsInteger,kAsInteger
Forn=100To999
i=n/100‘I=n\100
j=Int(n/10)-i*10‘j=(n-I*100)\10
k=nMod10
If(n=i*i*i+j*j*j+k*k*k)Then
number=numbre+1‘number=number+1
Nextn
Printnumber
4
求四位奇数中,所有各位数字之积(积不为0)是60的倍数的数之和。
Forx=1001To9999
a=Int(x/1000)
Ifa*b*c*dMod60=0Then
3456254
Forx=1001To9999step2
a=x\1000
b=(x-a*1000)\100
c=(x-a*1000-b*100)\10
Ifa*b*c*dMod60=0Anda*b*c*d<
>
0Then
求200到400间,能被3整除但不能被7整除的数的个数。
DimcountAsInteger
DimxAsInteger
count=0
x=200
Whilex<
=400
IfxMod3=0OrxMod7<
0Then‘and
count=count+1
EndIf
x=x+1
Loop‘wend
Printcount
57
根据以下公式pi/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9+…求pi(pi为圆周率)的值。
当最后一项的值小于0.0005时停止计算。
程序的fun()函数中有一行有错误,改正错误,使它能输出正确的结果。
Printfun(0.0005)
PrivateFunctionfun(epsAsSingle)AsSingle
s=0:
t=1:
n=1
While(t>
eps)
t=t*n/(2*n+1)
n=n+1
fun=s‘fun=2*s
3.140578
求数列2/1,3/2,5/3,13/8,……的前10项之和。
DimiAsInteger,tAsInteger,nAsInteger
DimaAsInteger,bAsInteger
DimsAsSingle
a=2:
b=1:
n=10
s=s+a/b
t=b‘t=a
a=a+b
a=t‘b=t
16.47991
所谓回文数是从左至右与从右至左读起来都是一样的数字,如:
121是一个回文数。
求100~200之间所有回文数之和。
Dima%,b%,c%,x%,s%
Forx=100To200
a=x/100‘a=x\100
b=x/10-a*10‘b=(z-a*100)\10
c=x-a*100-b*10
Ifa=cThens=s+x
Next
1460
求200到500间,能被13整除但不能被17整除的数的个数。
=500
IfxMod13=0OrxMod17<
0Then‘and
计算两个数的最小公倍数。
程序中有两行有错误,改正错误,使程序能输出正确结果。
Printfun(248,848)
PrivateFunctionfun(u,v)
t=u
DoWhiletModu<
0andtModv<
0
t=t+u
fun=u
26288
DoUntiltModu=0AndtModv=0
t=t+u
fun=t
猴子第1天摘下若干桃子,当即吃掉一半,又多吃一个,第二天将剩余的部分吃掉一半还多一个;
以此类推,到第10天只剩余1个。
问第1天共摘了多少桃子。
DimdayAsInteger,sumAsInteger
day=10;
sum=1
DoWhileday>
sum=sum*2
day=day-1
3070
sum=(sum+1)*2
求100~10000之间每位数字之和等于5的整数的个数。
Dimk%,i%,i1%,i2%,i3%,i4%
k=0
Fori=100To5000
SelectCasei
Case104To500
i1=Int(i/100)
i2=Int((i-i1*100)/10)
i3=i-i1*100-i2*10
Ifi1+i2+i3=5Thenk=k+1
Case1004To5000
i1=Int(i/1000)
i2=Int((i-i1*1000)/10)
i3=Int((i-i1*1000-i2*100)/10)
i4=i-i1*1000-i2*100-i3*10
Ifi1+i2+i3+i4=5Thenk=k+1
Endcase‘EndSelect
Printk
50
Int全改为Fix答案有误,应为20
求1到400间,同时能被3和7整除的数的个数。
Forx=1To400
ifmod(x,3)=0andmod(x,7)=0then
endif
Nextcount
printcount
19
IfxMod3=0AndxMod7=0Then
Printfun(482,248)
t=u
DoWhiletModu<
t=t+1
fun=u
59768
Fun=t
一个两位数的正整数,如果将其个位数与十位数字对调所生成的数称为其对调数,如28是82的对调数。
现给定一个两位的正整数,请找到另一个两位的整数,使这两个数之和等于它们的各自的对调数之和。
这样的另一个两位数有多少个。
程序中有错误(从键盘输入的两位数为46)改正错误,使它能输出正确的结果。
DimxAsInteger,yAsInteger,numberasInteger
DimxfAsInteger,yfAsInteger
Do
x=Val(InputBox("
请输入一个2位正整数:
LoopWhile(x<
9)Or