代码如何计算平方?

时间:2014-01-25 04:02:59

标签: c algorithm

如果奇数初始化为值3,那么循环在这个例子中的工作方式特别是如何将它增加到达到正方形?

#include <stdio.h>
int main(void)
{
    int i, n, odd, square;

    printf("This program prints a table of squares.\n");
    printf("Enter number of entries in table :");
    scanf("%d", &n);

    i = 1;
    odd = 3;
    for(square = 1; i <= n; odd += 2){
        printf("%10d%10d\n", i, square);
        i++;
        square += odd;
    }
return 0;
}

我需要一步一步澄清请帮助

2 个答案:

答案 0 :(得分:6)

这是使用数学技巧。前N个奇数之和总是一个正方形。

例如:

1
1 + 3 = 4
1 + 3 + 5 = 9
1 + 3 + 5 + 7 = 16

odd最初设为3,square从1开始。

每次循环播放square,然后将odd添加到square,然后将{2}添加到odd,使其成为下一个奇数。< / p>

答案 1 :(得分:0)

因为我们从1开始

首先是square = 1square^2odd = 32*square+1 所以,接下来将是square ^ 2 + 2 * square + 1 - &gt; (方形+ 1)^ 2

因此通常会square^2+2*n+sumOfOddNum(n)

其中,sumOfOddNum(n)是第一批n oddnumbers的总和,其中指出是n ^ 2

因此,square^2+2*n*square+n^2 [square = 1]将成为(square+n)^2