VF之最常见编程题
16.求任意两个数的最大公约数和最小公倍数
Private Sub Form_Click()
m1 = InputBox("输入m")
n1 = InputBox("输入n")
If m1 > n1 Then '为了求最小公倍数.增加m.n变量m = m1: n = n1
Else
m = n1: n = m1
End If 'm>n
r = m Mod n
Do While r <> 0
m = n
n = r
r = m Mod n
Loop
Print m1, ".", n1, "的最大约数为", n
Print "最小公倍数=". m1 * n1 / n
End Sub
17.1!+2!+。。。+100!=?
Clear
S=0
n=1
for i=1 to 100
n*=i
s+=n
endfor
? ‘1!+2!+。。。+100!=’,s
1.求100以内所有能被3整除的整数的和
clear
s=0
for i=1 to 100
if i%3=0
s=s+i
endif
endfor
?"100以内所有能被3整除的整数的和是:",s 2.输出3-100之间的素数
clear
for m=3 to 100 step 2
n=int(sort(m))
for i=3 to n
if mod(m,i)=0
exit
endi
endf
if i>n
??m
endi
endf
3.s= 1+3+5 (99)
clear
s=0
for i=1 to 100 step 2
s=s+i
endfor
?"100以内的奇数之和为:",s
4. 1-2+3-4+5·······=n.求n的值clear
s=0
n=0
@4,4 say 'input n:' get n
read
for i=1 to n
if i%2=0
s=s+i
else
s=s-i
endif
endfor
?s
Return
5.S=1+2+3+…+100
set talk off
clear
t=1
s=0
do while t<=100
s=s+t
t=t+1
st talk on
return
6.S=2+4+…..+100
set talk off
clear
t=2
s=0
do while t<=100
s=s+t
t=t+2
enddo
?s
set talk on
return
7.S=2! +4! +6! + (10)
set talk off
clear
t=2
s=0
do while i<=10
t=2
for j=1 to i
t=t*j
s=s+t
t=t+2
enddo
?t
set talk on
return
8.任意输入一个数,计算从1到这个数的相加之和clear
accept "请输入一个整数:"to xh
xh=int(xh)
xy=1
sum=0
do while xy<=xh
sum=sum+xy
xy=xy+1
enddo
?? "计算结果为:"
"sum
9.三角形:*
***
*****
i=1
s=" "(S为含有8个空格的字符常量)
do while i<=4
j=1
?p
do while j<=2*i-1
??"*"
j=j+1
enddo
i=i+1
p=substr(s,i) enddo
10.菱形: *
***
*****
***
*
i=1
s=" "
p=s
do while i<=4
j=1
?p
do while j<=2*i-1
??"*"
j=j+1
enddo
i=i+1
p=substr(s,i)
enddo
11.五角星
do while i>=1
j=1
?p
do while j<=2*i-1
??"*"
j=j+1
enddo
i=i-1
p=substr(s,i)
enddo
12将厚0.5mm,面积足够大的纸折叠,问折叠多少次后其厚度可达到8848m? ? '0.5mm的纸折叠',i,'次以后有',sum,'米'
set talk off
sum=0.0005
i=0
do while sum<8848
i=i+1
sum=sum+sum
enddo
13.输入一年份,判断是否为闰年?
clear
set talk off
input "请输入年份:"to n
msg="年不是闰年"
if mod(n,4)=0 and mod(n,100)<>0 or mod(n,400)=0 msg="年是闰年"
endif
?n,msg
set talk on
set talk off
14. 求1到100之间所有整数的平方和?
set talk off
b=0
for i= 1 to 100
b=i*i+b
next
?b
15.编程求100-999之间的全部水仙花数。LOCAL lnI,lcZf,lnGw,lnSw,lnBw
FOR lnI=100 to 999
lcZf=ALLTRIM(STR(m.lnI))
lnGw=VAL(SUBSTR(m.lcZf,3,1))
lnSw=VAL(SUBSTR(m.lcZf,2,1))
lnBw=VAL(SUBSTR(m.lcZf,1,1))
IF m.lnGw^3+m.lnSw^3+m.lnBw^3=m.lnI then ?m.lnI
ENDIF
ENDFOR