百科知识

这道题给个分析方法vb求Sn=a+aa+aaa+...+aaaa

2006-01-04 12:06:27l***
求Sn=a+aa+aaa+...+aaaa...aaa的值,其中a是一个数字,例如:2+22+222+2222(此时n=4),n和a由输入框输入. 没思路!请各位指明!这道题给个分析方法vb求Sn=a+aa+aaa+...+aaaa...aaa的值,其中a是一个数字,例如:2+22+222+2222(此时n=4),n和a由输入?

最佳回答

  • PrivateSubCommand1_Click()OnErrorGoTocalerrorDimaAsIntegerDimnAsIntegerDimiAsIntegerDimjAsIntegerDimsumAsLonga=Val(txtA)n=Val(txtN)Fori=0Ton-1Forj=0Toisum=sum+a*10^jNextjNextitext1="a="&a&",n="&n_&vbNewLine&"结果是:"&sumExitSu ,vbOKOnly+vbExclamation,"提示"EndSub我重新修改了程序,没有对输入的数值进行判断。
    2006-01-05 09:54:31
  • 这个用中学数学中的数列知识很容易解决: 形如a,aa,aaa,aaaa...的数列的通项公式为an=a*(10^n-1)/9,因此,对它求和可以直接用公式:Sn=a*(10+10^2+10^3+...+10^n)/9-n*a/9=a*(10^n-10)/81-a*n/9
    2006-01-04 21:41:05
  • 你可以把那些要相加的数值看成字符传,比如2就是"2",2222就是"2" & "2" & "2" & "2"然后在用VAL()把他们转换成数字型别进行运算。这样想会不会直观一些?
    2006-01-04 16:50:22
  • 这个可以这样看a+(a+a*10)+(a+a*10+a*100).... 看出规律没有? int t=0,j=a; for(i=1;i<=n;i++) {//10~1代表10个1次方 t=t+j; j=j+a*10~1; } 没有仔细考虑,算法差不多就是这样的!
    2006-01-04 14:33:55
  • 很赞哦! (165)