VF程序设计典型题目

VF程序设计典型题目
VF程序设计典型题目

VF程序设计典型题目

1、求[10,1000]内所有能被被7和9中至少一个数整除的整数之个数。

答案:236

n=0

for i=10 to 1000

if mod(i,7)=0 or mod(i,9)=0

n=n+1

endi

endf

?n

2、求[101,299]内所有能被2整除但不能同时被3和5整除的整数之和。

答案:18630

s=0

for i=101 to 299

if mod(i,2)=0 and not (mod(i,3)=0 and

mod(i,5)=0)

s=s+i

endi

endf

3、求100以内最大的自然数n,使得从1开始的连续n 个自然数的倒数之和小于3.5。

答案:18

s=0

for i=1 to 100

s=s+1/i

if s>=3.5

exit

endi

endf

?i-1

4、求100以内最小的自然数n,使得从1开始的连续n 个自然数的立方之和大于30000。

答案:25

s=0

for i=1 to 100

s=s+i^3

if s>30000

exit

endi

endf

5、求出100以内使得算式1*2+2*3+…+n*(n+1)的值小于5000的最大的自然数n。

答案:23

s=0

for i=1 to 100

s=s+i*(i+1)

if s>=5000

exit

endi

endf

?i-1

6、求出100以内使得算式1/(1*1)+1/(2*2)+…+1/(n*n)的值小于1.6的最大的自然数n。

答案:21

s=0

for i=1 to 100

s=s+1/i^2

if s>=1.6

exit

endi

endf

?i-1

7、某国今年的人口总数为1亿,若以每年4%的速度递增,试求出至少要再过几年该国人口总数才会翻一翻。答案:18

n=0

x=1

do while x<2

x=x*(1+0.04)

n=n+1

enddo

?n

8、设等比数列:1,3,9,27,…。求使得此数列的前n项之和大于2345678的最小的自然数n。

答案:14

s=0

n=0

do while s<=2345678

s=s+3^n

n=n+1

enddo

?n

9、求出45678的所有非平凡因子(即除1和它本身以

外的约数)中是奇数的因子个数。

答案:7

n=0

s=45678

for i=3 to 22839 step 2

if mod(s,i)=0

n=n+1

endif

endfor

?n

10、求出203267的所有真因子(即小于它本身的约数)中最大的因子数。

答案:6557

s=203267

for i=1 to int(203267/3)

if mod(s,i)=0

n=i

endif

endfor

?n

11、求出20677和42067的最大公约数。

答案:713

for i=20677 to 1 step -1

if mod(20677,i)=0 and mod(42067,i)=0

exit

endif

endfor

?i

12、求前[1,100]内能被6或8整除的所有自然数的平方根的和(将第1位小数四舍五入,结果只保留整数)。答案:162

s=0

for i=1 to 100

if mod(i,6)=0 or mod(i,8)=0

s=s+sqrt(i)

endif

endfor

?round(s,0)

13、求所有符合算式ab*ba=2701的最小的两位数ab (即a*10+b)。其中a、b是1~9之间的一位整数。答案:37

for a=1 to 9

for b=1 to 9

if (a*10+b)*(b*10+a)=2701

?a*10+b

return

endif

endfor

endfor

14、已知数列:1,2,4,7,11,16,…,其规律是相邻两项之差依次是1,2,3,4,5,…。试求出此数列中大于5000

的最小的项。

答案:5051

a=1

n=1

do while a<5000

a=a+n

n=n+1

enddo

?a

15、已知数列{f(n)}:f(1)=1,f(2)=4,当n=3,4,5,…时,f(n)=3*f(n-1)-f(n-2)。试求出100以内最小的自然数n 使得此数列的第n项大于87654321。

答案:20

Dimension f(100)

f(1)=1

f(2)=4

n=2

do while f(n)< 87654321

n=n+1

f(n)=3*f(n-1)-f(n-2)

enddo

?n

16、一球从100米高处落至平地,并且连续多次再反弹再落下,假设每次反弹的高度都是前一高度的3/4倍,试求出最大的自然数n,使得此球从开始下落至第n次着地时在垂直方向所经过的总路程不超过690米。

答案:15

h=100

s=100

n=1

do while s<690

h=h*3/4

s=s+2*h

n=n+1

enddo

?n-1

17、设有用26个字母表示的26个表达式:a=1,

b=1/(a+1),c=1/(b+2),…,z=1/(y+25)。试求出这26个字母中其值小于0.1的字母个数。

答案:16

a=1

n=0

for i=1 to 25

a=1/(a+i)

if a<0.1

n=n+1

endif

endfor

?n

18、回文指的是正读和反读都一样的一串字符,如121、1221。试求出[1421,4112]内所有回文数的和。答案:74250

s=0

for i=1421 to 4112

if int(i/1000)=i%10 and int(i/100)%10=

int(i%100/10)

s=s+i

endif

endfor

?s

19、求在[100,999]内所有不含数字0且各位数字之积被96整除的数之和。

答案:26640

s=0

for a=1 to 9

for b=1 to 9

for c=1 to 9

if(mod(a*b*c,96)=0)

s=s+a*100+b*10+c

endi

endf

endf

endf

?s

20、将大于1000且能被4和6中至少一个数整除的所有整数按从小到大顺序排列后,求前面20个数之和。答案:20610

a=1001

n=0

s=0

do while n<20

if mod(a,4)=0 or mod(a,6)=0

s=s+a

n=n+1

endif

a=a+1

enddo

?s

21、若一个自然数恰好是它的平方的末后几位数,则称此数为自同构数。如5和76都是自同构数,因为它们的平方分别是25和5776。求[2,99999]内所有自同构数之和。(提示:若x是m位同构数,则x的平方除以10的m次方的余数就是x)

答案:101114

s=0

for i=2 to 999999

if mod(i*i,10)=i or mod(i*i,100)=i or

mod(i*i,1000)=i or mod(i*i,10000)=i or

mod(i*i,100000)=i

s=s+i

endif

endfor

?s

22、求满足条件A*B=54321且使A+B的值最小的自然数对A、B中较小的一个数。(提示:设A<=B,当A越大时A+B越小)

答案:57

s1=54322

for i=1 to int(sqrt(54321))

if(54321%i==0 )

s=i+54321/i

if(s<=s1)

s1=s

a=i

endif

endif

endfor

?a

23、已知数列:1、2、4、7、10、15、…,其特点是:相邻两项之差恰好构成自然数列:1、2、3、4、5、…。求此数列的前100项中能被4整除的项的个数。

答案:25

m=0

a=1

for n=1 to 99

a=a+n

if a%4==0

m=m+1

endif

endfor

?m

24、求出将十进制整数98765432等值转换为二进制形式表示后其中数字1的个数。(提示:模拟人工计算的“2除取余”法)

答案:13

c=98765432

n=0

do while c>0

if(c%2==1)

n=n+1

endif

c=int(c/2)

enddo

?n

25、对自然数A、B、C,若A

答案:5

n=0

for b=12500 to 25000

for a=1 to b-1

if a*a+b*b=25000*25000

n=n+1

endif

endfor

endfor

?n

26、求方程3x-7y=1在条件|x|<100且|y|<40下的整数解的个数。

答案:26

n=0

for x=-99 to 99

for y=-39 to 39

if 3*x-7*y==1

n=n+1

endif

endfor

endfor

?n

27、已知数列{f(n)}:f(1)=1,f(2)=4,当n=3,4,5,…时,f(n)=3*f(n-1)-f(n-2)。试求出100以内最大的自然数n 使得此数列的前n项之和首次大于75364321。

答案:19

dime f(100)

f(1)=1

f(2)=4

s=5

for n=3 to 100

f(n)=3*f(n-1)-f(n-2)

s=s+f(n)

if s>75364321

exit

endif

endfor

?n

28、求100-200内的所有素数的个数。(素质是指只能被1和本身整除的数)

答案:21

n=0

for i=100 to 200

for j=2 to i-1

if(i%j==0)

exit

endif

endfor

if j==i

n=n+1

endif

endfor

?n

29、求1000-10000内的第50个素数。(素质是指只能被1和本身整除的数)

答案:1361

n=0

for i=1000 to 10000

for j=2 to i-1

if(i%j==0)

exit

endif

endfor

if j==i

n=n+1

endif

if n==50

exit

endif

endfor

?i

30、编写程序,计算10000以内有多少个这样的数,其个位数为6且该数能被9整除。

答案:111

n=0

for i=1 to 10000

if i%10==6 and i%9==0

n=n+1

endif

endfor

?n

31、设某四位数的各位数字的平方和等于100,问共有多少个这种四位数?

答案:49

n=0

for i=1000 to 9999

a=int(i/1000)

b=int(i/100)%10

c=int(i/10)%10

d=i%10

if a^2+b^2+c^2+d^2=100

n=n+1

endif

endfor

?n

32、把一张一元钞票,换成一分、二分和五分硬币,每种至少11枚,问有多少种方案?

答案:13

n=0

for a=11 to 20

for b=11 to 50

for c=11 to 100

if a*5+b*2+c=100

n=n+1

endif

endfor

endfor

?n

33、把一张一元钞票,换成一分、二分和五分硬币,每种至少1枚,问兑换后硬币总数最多的与硬币总数最少的枚数之差是多少?

答案:73

max=3

min=300

for a=1 to 20

for b=1 to 50

for c=1 to 100

if a*5+b*2+c=100

s=a+b+c

if(s>max)

max=s

endif

if(s

min=s

endif

endif

endfor

endfor

?max-min

34、找满足以下条件:X^2+Y^2=41^2 且X+Y之值最大的二个正整数X,Y, 求X+Y之值.

答案:49

max=41

for x=1 to 41

for y=x to 41

if x*x+y*y=41*41 and max

max=x+y

endif

endfor

endfor

?max

35、已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。求[100,300]之间能被其因子数目整除的数的个数。

答案:19

m=0

相关主题
相关文档
最新文档