VF程序题
问题描述:
VF程序题
求S(n)=a+aa+aaa+...+aaa.aaa(其中有n个a)之值,a是一个数字,n和a由键盘键入(例如:2+22+222+22222+22222,此时n=5)
答
CLOSE ALL
CLEAR ALL
CLEAR
cGetLenth_a = ""
nMaxLenth_n = 09 &&& n 的最大数.
*** 因 VFP 数字取值范围为:-2 147 483 647 到 2 147 483 646,即:
*** 正整数最大只能是十个位,且若十个位时,第一个位的数字最大只能是:2.
*** 还加上要累加计算,所以此最大值只能取九个位!
cMaxLenth_n = ALLTRIM(STR(nMaxLenth_n))
DO WHILE .T.
INPUT "请输入a:" TO nGetLenth_a
IF TYPE("nGetLenth_a") = "N"
IF BETWEEN(nGetLenth_a,1,9)
cGetLenth_a = ALLTRIM(STR(nGetLenth_a))
EXIT
ELSE
MESSAGEBOX("数字已限定在 1-9 之间!",0 + 64,"")
ENDIF
ELSE
MESSAGEBOX("输入的字符不是数字型的字符!",0 + 16,"Warning")
ENDIF
ENDDO
DO WHILE .T.
INPUT "请输入n:" TO nGetLenth_n
IF TYPE("nGetLenth_n") = "N"
cGetLenth_n = ALLTRIM(STR(nGetLenth_n))
IF nGetLenth_n >= 1 AND nGetLenth_n