编写程序验证:任何一个自然数n立方都等于n个连续奇数之和.要求对每个输入的自然数计算并输出相应连续奇数

2个回答

  • '解题思路:

    '题目要求,求证一个数的立方为若干继续奇数之和,

    '我们知道乘方是由乘法发展而来的,而乘法是由多个相同的数相加而来的.这样,

    '我们可以把n的立方变为n个数相加 ,即

    'n的立方 = n的平方 + n的平方 + n的平方 + ……

    '一共有n项的多项式,相当于一个差值为0的等差的数列,

    '而只要把这个具有n项的数列变成相邻差值为2的奇数就可以实现题目所要求的.

    '现在关键是求出n项中的第一项的值就可以了,其余项则是在第一项的基础上差值为2的等差数列.

    '若是升序序列的话,第一项是最小的数,它的值为n的平方减去n加上1,

    '这时就可写出语句代码了:

    '当然这段代码只能运行n值30以内的数值,在这里仅仅是提供一点解题的思路

    Sub jisu()

    Dim n As Integer

    n = InputBox("请输入一个大于等于2的整数")

    If n < 2 Then Exit Sub

    Dim nArr() As Integer '定义数组变量用来存放连续的各个奇数

    ReDim nArr(1 To n) '重置数组变量的上下界

    Dim nn As Long

    nn = n * n - n - 1

    Dim i As Integer

    Dim s As String

    For i = 1 To n

    nArr(i) = nn + 2 * i '为数组变量赋值

    s = s & nArr(i) & ","

    Next

    s = Left(s,Len(s) - 1)

    MsgBox n & "的立方" & n * n * n & "等于连续奇数" & s & "之和"

    '这样提示框的显示方式只能显示n值在30以内的数值,太大了报错

    End Su