VF之最常见编程题.docx
VF之最常见编程题16.求任意两个数的最大公约数和最小公倍数 Private Sub FormClick m1 = InputBox("输入m") n1 = InputBox("输入n") If m1 n1 Then 为了求最小公倍数.增加m.n变量 m = m1: n = n1 Else m = n1: n = m1 End If mn 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 enddo 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 endfor 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=" " 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 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.lnGw3+m.lnSw3+m.lnBw3=m.lnI then ?m.lnI ENDIF ENDFOR